天天看点

iOS 中UIButton的 settitle 和 titlelabel的使用误区

uibutton中设置titl方法包括以下几种:

在定义uibutton的时候,经常会使用titlelabel.text设置uibutton的值,但是run出来确啥都没显示,不起作用啊!!!,这是怎么会事?难道是api的bug??

1.其实不是,正常使用uibutton的时候设置title是要对应button的controlstate,因为uibutton继承于uicontrol,在设置值得时候需要对象状态,所以一般都会用

settitle:(nsstring *)title forstate:(uicontrolstate)state 设置 title;

2.setattributedtitle是ios6之后的方法,使用起来很简单,没特色说明。实例如下:

3.对应的currenttitle

也就是/normal/highlighted/selected/disabled状态下的title值,属性为readonly;

4.至于titlelabel是设置的时候为啥不显示,比较神奇。查了官方文档以后才发现,真正的原因再于:(以下是我使用uibutton打印titlelabel对象的结果)

看到这里你明白了吗?

默认uibutton的titlelable是没设置frame的,而且hidden=yes;只要你设置这2个值就可以正常显示,

无论你采用何种方式生产uibutton:

都一样;

总之,上面是我遇到过2次使用titlelabel不显示的总结,希望对以后有帮助。推荐使用第一种方式设置title不会遇到那么多麻烦。。。