iOS UIButton 选中状态

Posted

技术标签:

【中文标题】iOS UIButton 选中状态【英文标题】:iOS UIButton Selected State 【发布时间】:2014-10-28 03:13:41 【问题描述】:

我想实现下图的按钮状态。当触摸“开始..”区域时,该区域会突出显示并弹出一个日期选择器。我的方法是创建一个全角按钮并在其上放置两个标签 Starts, Today 12:00 AM。当用户触摸按钮时,我通过拉起日期选择器来响应操作。这是我的问题。

    这种方法是传统的吗?

    如何使按钮进入“选定”状态?我尝试了以下方法来更改背景图片:

    UIImage *buttonImage = [[UIImage imageNamed:@"btn_carrot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(18, 18, 18, 18)]; UIImage *buttonImageHighlight = [[UIImage imageNamed:@"btn_light_carrot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(18, 18, 18, 18)]; [self.startDateButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; [self.startDateButton setBackgroundImage:buttonImageHighlight forState:(UIControlStateHighlighted | UIControlStateSelected)];

但是,按钮永远不会进入选定状态。它短暂地改变了它的颜色。 谢谢!

【问题讨论】:

【参考方案1】:

在按钮触发后尝试 setHighlighted:

[self.startDateButton setHighlighted:YES];

【讨论】:

谢谢安德烈亚斯,但不幸的是,这不起作用。 也许你应该看看这篇文章:***.com/questions/1785008/… 按钮的颜色在按下按钮时会发生变化,但只要我一松开手指,按钮就会恢复到原来的颜色。【参考方案2】:

您可以使用UITableViewDelegate中的- tableView:didSelectRowAtIndexPath:来响应用户的触摸动作,并通过UITableViewDataSource中的- tableView:cellForRowAtIndexPath:自定义您的单元格。

【讨论】:

不能用 UIButton 做吗?

以上是关于iOS UIButton 选中状态的主要内容,如果未能解决你的问题,请参考以下文章

iOS UIButton 选中状态

UIButton:为选中状态设置图片

UIButton 系统样式选中状态,保留图片和背景

UIButton:为选中的高亮 UI 状态设置背景颜色(不是图像)

在播放音频时保持 UIButton 处于选中状态

为啥在我松开手指之前我的 UIButton 的选中状态没有被触发?