假设我有5条文字。我想使用UITextView或UILabel来显示它。我有一个下一个和上一个按钮,以帮助我循环它。解决这个问题的最佳方法是什么?
NSString *text1 = @"Hello World 1"
NSString *text2 = @"Hello World 2"
NSString *text3 = @"Hello World 3"
NSString *text4 = @"Hello World 4"
NSString *text5 = @"Hello World 5"
答案 0 :(得分:3)
这个解决方案可能不错
<。>文件中的
UIButton *nextButton;
UIButton *backButton;
UILabel *textLabel;
NSArray *textStr;
int counter;
<。>文件中的
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
counter=0;
textStr = [[NSArray alloc] initWithObjects:@"Today is rainy", @"Today is sunnt", @"Today is bright", @"Today is gloomy",
@"Today is beautifyl", nil];
textLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 30, 200, 200)];
textLabel.text= [NSString stringWithFormat:@"%@", [textStr objectAtIndex:0]];
[self.view addSubview:textLabel];
nextButton= [UIButton buttonWithType:UIButtonTypeRoundedRect];
[nextButton addTarget:self
action:@selector(btnClicked:)
forControlEvents:UIControlEventTouchDown];
nextButton.tag=1;
[nextButton setTitle:@"Next" forState:UIControlStateNormal];
nextButton.frame = CGRectMake(120.0, 150, 80, 40.0);
[self.view addSubview:nextButton];
backButton= [UIButton buttonWithType:UIButtonTypeRoundedRect];
[backButton addTarget:self
action:@selector(btnClicked:)
forControlEvents:UIControlEventTouchDown];
backButton.tag=2;
[backButton setTitle:@"Previous" forState:UIControlStateNormal];
backButton.frame = CGRectMake(30.0, 150, 80.0, 40.0);
[self.view addSubview:backButton];
}
-(void)btnClicked:(UIButton*)btn{
if (btn.tag==1) {
NSLog(@"%i", [textStr count]);
if (counter<[textStr count]-1) {
counter++;
NSLog(@"%i", counter);
textLabel.text= [NSString stringWithFormat:@"%@", [textStr objectAtIndex:counter]];
}
}
else{
if (counter>1) {
counter--;
textLabel.text= [NSString stringWithFormat:@"%@", [textStr objectAtIndex:counter]];
}
}
}
答案 1 :(得分:2)
这是基本的想法,因为实现是微不足道的,我不会发布确切的代码,因为这对你自己学习是有益的。
1.将所有字符串添加到NSArray
。
2.使用InterfaceBuilder为视图添加两个按钮并链接到您的代码。
3.在视图中添加标签并链接到您的代码。
4.创建int
属性并将其命名为counter
。
5.当用户按下“下一步”时,我们想:
5.1将计数器增加1.
5.2检查以确保计数器高于我们的阵列长度。
5.3如果计数器&gt;数组长度然后我们可以将它设置回0来循环。
5.4如果计数器&lt; =数组长度,那么我们什么都不做。
5.5从计数器索引
中取出数组中的字符串5.6将我们在#3文本中创建的标签设置为检索到的字符串。
6.当用户按下“上一个”时,我们想要:
6.1将计数器减少1.
6.2检查以确保计数器>> 0
6.3如果计数器&lt; 0然后我们可以将它设置为等于我们的数组长度,因此它循环
6.4如果计数器&lt; = 0长度,那么我们什么都不做。
6.5在计数器索引处抓取数组中的字符串
6.6将我们在#3文本中创建的标签设置为检索到的字符串。