UIButton获取标题文字

本文介绍了一个UIButton在iOS应用中实现标题切换的方法。通过正确使用currentTitle属性,可以在不同状态间平滑地切换按钮的显示文本,例如从搜索图标转换到“取消”。文中详细解释了如何避免常见的代码陷阱,并给出了具体的实现代码。

问题


一个button,点击事件实现在一个搜索图标和“取消”之间的转换,那需要在响应事件中判断标题文字,所以我想获取button的标题
代码如下:

 if ([button.titleLabel.text isEqualToString:@"取消"]) {    

    [button setTitle:@""forState:UIControlStateNormal]; 
}else {       
   [button setTitle:@"取消" forState:UIControlStateNormal];      
   [button setImage:nil forState:UIControlStateNormal];    }

问题来了,判断无效。

即我设置 title为@ “ ” 时,判断

<span style="font-family: Arial, Helvetica, sans-serif;">[button.titleLabel.text isEqualToString:@"取消"]</span>

依旧成立。

说明


看了一眼UIButton的类,才发现事情不能想当然的认为。
因为为button赋值 title 实际上是将值赋给了 currentTitle
所以代码应该如是写:

  if ([button.currentTitle isEqualToString:@"取消"]) {

      [button setTitle:@"" forState:UIControlStateNormal];      
      [button setImage:[UIImage imageNamed:@"search_normal"] forState:UIControlStateNormal];   
  }else {    
      [button setImage:nil forState:UIControlStateNormal]; 
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值