尝试更新 UIButton 的标题以响应被选中
Posted
技术标签:
【中文标题】尝试更新 UIButton 的标题以响应被选中【英文标题】:Trying to update the title a UIButton in response to being selected 【发布时间】:2014-02-16 00:45:22 【问题描述】:我正在尝试在选择按钮时从 u -> d 更新标题。 'u' 的设置工作正常,但单击按钮后,它不会更新。我正在付诸行动,但不确定这是否是正确的地方。
在 viewDidLoad 中
[self.expandButton setTitle:@"u" forState: UIControlStateNormal];
我把这个放在哪里? - 在 UIButton 的操作中无法正常工作:
[self.expandButton setTitle:@"d" forState: UIControlStateSelected];
感谢任何帮助
编辑 1
被设置为属性: @property (weak, nonatomic) IBOutlet UIButton *expandButton;
...
这是操作以及我尝试设置选定状态的方式:
- (IBAction)expand:(id)sender
[self.expandButton setTitle:@"d" forState: UIControlStateSelected];
【问题讨论】:
您想在选择按钮或突出显示时更改标题? 设置“d”标题的代码在哪里? 当用户单击按钮时,我想从 u -> d 更新 UIButton。我还需要设置什么吗? 【参考方案1】:您可以创建一个函数来设置按钮标题并在触摸时调用它:
[button addTarget:self action:@selector(buttonTouchDown:)forControlEvents:UIControlEventTouchDown];
【讨论】:
【参考方案2】:...
已编辑
我得到的是,当点击按钮时,状态变为selected,当再次点击时,状态又回到正常。你可以使用这些技巧:
- (void)viewDidLayoutSubviews
[super viewDidLayoutSubviews];
[button setTitle:@"unselected" forState:UIControlStateNormal];
[button setTitle:@"selected" forState:UIControlStateSelected];
[button addTarget:self action:@selector(buttonTap:) forControlEvents:UIControlEventTouchUpInside];
- (void)buttonTap:(UIButton *)sender
sender.selected = !sender.selected;
【讨论】:
thx - 我可能没有得到 UIButton - 这基本上会闪烁到黑色,然后返回给你。嗯....我是否需要以某种方式将按钮设置为“选定”状态?【参考方案3】:您可以制作一个“空白”按钮并在其上使用 UILabel。我不确定您为什么没有收到更新,但根据我的经验,我通常会以这种方式处理这种情况。
【讨论】:
以上是关于尝试更新 UIButton 的标题以响应被选中的主要内容,如果未能解决你的问题,请参考以下文章
为啥在我松开手指之前我的 UIButton 的选中状态没有被触发?