【问题标题】:Trying to update the title a UIButton in response to being selected尝试更新 UIButton 的标题以响应被选中
【发布时间】: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。我还需要设置什么吗?

标签: ios ios7 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。我不确定您为什么没有收到更新,但根据我的经验,我通常会以这种方式处理这种情况。

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 2014-09-07
      • 1970-01-01
      • 2010-11-05
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多