使用next&amp ;;更改UITextView / UILabel中的不同文本。以前的UIButton

时间:2013-08-26 21:05:31

标签: ios objective-c uibutton uilabel uitextview

假设我有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"

2 个答案:

答案 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文本中创建的标签设置为检索到的字符串。