如何动态更改UIButton标题文本

时间:2014-10-03 05:43:12

标签: ios uibutton

- (void)viewDidLoad {
    [self addMyButton];   // Call add button method on view load
}

- (void)addMyButton {     // Method for creating button, with background image and other properties    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button addTarget:self action:@selector(aMethod)forControlEvents:UIControlEventTouchUpInside];
    [button setTitle:@"Show More" forState:UIControlStateNormal];
    button.frame = CGRectMake(80.0, 500.0, 160.0, 40.0);    
    [self.view addSubview:button];
}

- (void)aMethod {
    NSLog(@"in load more n===>>>%d",n);
    [tbl reloadData];    
}

有一个NSMutableArray包含三十个对象。首先只显示十个对象,点击“显示更多”对象后,将显示更多对象。按钮将显示20个对象,并且在按钮上再次单击后,应显示30个对象,按钮标题将变为“返回”。当我点击'返回'然后表视图应该只显示20个对象。在下一次单击后,应显示十个元素。

3 个答案:

答案 0 :(得分:1)

-(void) aMethod{
if(n==2)
{
    [button setTitle:@"Return" forState:UIControlStateNormal];
    [button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    [button setBackgroundColor:[UIColor orangeColor]];
  //  n--;
}
else
{        [button setTitle:@"Show More" forState:UIControlStateNormal];
    [button setBackgroundColor:[UIColor clearColor]];
}
NSLog(@"n==>>  %d",n);
[tbl reloadData];}

Here is my code.

答案 1 :(得分:0)

您的按钮是动态附加的,您必须创建对它的引用。

您可以使用计数器,如下所示:

-(void) aMethod{

    if(ctr < arrayLength){
          ctr++;
          [buttonReference setText:@"Show More"];
    } else {
          ctr--;
          [buttonReference setText:@"Return"];
    }
     .....
}

答案 2 :(得分:0)

你可以通过三种方式完成这项工作

1:在实现文件的私有界面中声明你的按钮,这样你就可以在课堂的任何地方访问该按钮。

2:使用(id)sender参数声明aMethod()并将发件人输入到UIButton。

3:在AddMyButton button.tag = 1;中添加UIButton的tag属性,并引用aMethod中的按钮

-(void)aMethod
{
    UIButton *button2 = (UIButton *)[self.view viewWithTag:1];
    [button2 setTitle:@"return" forState:UIControlStateNormal];

    NSLog(@"in load more n===>>>");
    [tbl reloadData];
}