UIButton--title设置

刚刚写了一个button,没有思考的就给它设置title,如下面的方式

  loginBtn.titleLabel.text = @"登录";
  loginBtn.titleLabel.textColor = [UIColor redColor];

发现这2个属性并没有什么卵用,宛如智障的我还在思索,咋不显示呢。
原来UIButton是要分状态的,因为UIButton继承于UIControl,在设置值的时候需要对象状态,要如下设置

  [loginBtn setTitle:@"登录" forState:UIControlStateNormal];
  [loginBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

更新title时,都要设置状态的
当通过titleLable设置时,我们可以看下,控制台打印的信息

213587656222A43C9FEA63AD8566BDC0.png

它的frame是0,隐藏状态,所以就不会显示,看了一下别人的见解,说要设置titleLabel的frame,如下所示,但是然并卵,控制台打印的信息仍然是上面那种情况

  loginBtn.titleLabel.frame = CGRectMake(10, 350, 100, 50)      
  [loginBtn.titleLabel setHidden:NO] ;

所以,我们只能通过setTitle设置

  [loginBtn setTitle:@"点击登录" forState:UIControlStateNormal];
  [loginBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

setTitle这个方法,实际上就是利用titleLabel设置,我们来看下打印的信息

D72D4DB754F349097A99670F24D6C7CC.png

发现通过setTitle设置之后,UIButtonLabel的text改变了。

你可能感兴趣的:(UIButton--title设置)