您的位置:首页 > 产品设计 > UI/UE

Some easily overlooked points about UIButton

2015-05-18 00:55 267 查看
在UIButton中我们可以设置图片、也可以设置文字。这是因为在它里面其实还包括了一个UIImageView 和一个UIlabel在XCode,进入UIButton的头文件:



这里需要注意的是 UILabel * titleLabel 以及 UIImageView * imageView 都是ReadOnly,两个成员变量是不能通过点语法赋值的。

有的时候,我们想换个跟往常不一样的写法,比如可能写成下面的代码:



虽然在编译的时候不会报出错误,但是实际上,button是取不到这张图片的,因为imageView是只读的,它是没有set方法的。

同样的,下面修改title的方法也是错误的:



所以,在给button设置图片、title文字的时候我们都会选择:



在高亮或者其他button状态下,系统会自动调节,与normal保持一致

这里有一点需要注意的是:



在修改button的title值后,通过button.titleLabel.text返回的字符串长度是不准确的。例如上方,我们通过button.titleLabel.text分别打印出了

未设置title

设置title后

修改title后

三种状态下返回的字符串长度:发现值只能增加,即使在最后我们将title设定成了nil,它打印的长度仍然是2



所以,当我们需要动态判断UIButton中title的文字长度时,我们会选择

[button titleForState:(UIControlState)],因为它返回给我们的总是最新状态下title的字符串。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: