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的字符串。
这里需要注意的是 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的字符串。
相关文章推荐
- Some points about postback and multi-language drop down list
- Some points about the CMM
- Some points about modern Dojo
- Some points about dynamic sql
- some points to be think about how to create your
- Some Books About Linux
- some ideAs About steAlth for rootkit
- 开始学习深度学习和循环神经网络Some starting points for deep learning and RNNs
- 开始学习深度学习和循环神经网络Some starting points for deep learning and RNNs
- Some resources about Calling Conventions - cdecl, stdcall, fastcall, thiscall, etc.
- ASP.NET 事件日历(some resource about Event Calendar)
- Some Animation about Scroller in MCE
- Some Question About ASP.NET
- Some functions and codes about date
- some thinking about management
- Some interesting facts about static member functions in C++
- About Logging for Flashback Database and Guaranteed Restore Points【每日一译】--20121120
- Some feelings about HIT_MS summer school on IE
- List sessions and some details about them
- ST:(homework 3)Some problems about Graph Coverage