一个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]; }