代码之家  ›  专栏  ›  技术社区  ›  Chris Craft

有没有一种方法可以设置一个ui按钮同时更新所有uicontrol状态?

  •  27
  • Chris Craft  · 技术社区  · 15 年前

    我有一个uibutton,我想更新它的标题,但我不想总是为每个状态都这样做,如下所示:

    [myButton setTitle:@"Play" forState:UIControlStateNormal];
    
    [myButton setTitle:@"Play" forState:UIControlStateHighlighted];
    
    [myButton setTitle:@"Play" forState:UIControlStateSelected];
    

    有更好的方法吗?

    4 回复  |  直到 6 年前
        1
  •  59
  •   fbrereto    15 年前

    根据文件,您只需致电:

    [myButton setTitle:@"Play" forState:UIControlStateNormal];
    

    uibutton文档解释了原因:

    通常,如果没有为状态指定属性,则默认情况下使用uicontrolStateNormal值。如果未设置uicontrolStateNormal的值,则属性默认为系统值。因此,至少应该设置正常状态的值。

    也就是说,如果只设置正常值,其他状态在设置时将引用它。

        2
  •  7
  •   Pieter Goosen Andrew Luo    10 年前

    也可以通过以下方式设置:

    [myButton setTitle:@"Play" forState:UIControlStateNormal|UIControlStateHighlighted|UIControlStateSelected];
    
        3
  •  1
  •   Fattie    6 年前

    二千零一十九

    只是

    yourButton.setTitle("Click me", for: .normal)
    
        4
  •  0
  •   Mihriban Minaz Andy Davies    9 年前

    可以为ui按钮创建类别:

    @implementation UIButton (Addition)
    -(void)setTitleForAllStates:(NSString *)title {
         //you can add/remove this area : UIControlStateApplication, UIControlStateDisabled, UIControlStateReserved
         [self setTitle:title forState:UIControlStateNormal];
         [self setTitle:title forState:UIControlStateSelected];
         [self setTitle:title forState:UIControlStateHighlighted];
    }
    @end