UIButton.titleLabel.text和[UIButton setTitle:],UIButton.imageView.image和[UIButton setImage]的区别
2016-02-19 16:48
519 查看
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:
都一样;
以下同理:button的imageView隐藏不隐藏的问题
self.bookButton.imageView.hidden = NO; 不起效果
[self.bookButtonsetImage:[UIImageimageNamed:@"icon_visa_detail_qianggou"]forState:UIControlStateNormal];有效果。
- (void)setTitle:(NSString *)title forState:(UIControlState)state; - (void)setAttributedTitle:(NSAttributedString *)title forState:(UIControlState)state @property(nonatomic,readonly,retain) NSString *currentTitle; @property(nonatomic,readonly,retain) UILabel *titleLabel;
在定义UIButton的时候,经常会使用titleLabel.text设置UIButton的值,但是Run出来确啥都没显示,不起作用啊!!!,这是怎么会事?难道是API的bug??
1.其实不是,正常使用UIButton的时候设置Title是要对应Button的ControlState,因为UIButton继承于UIControl,在设置值得时候需要对象状态,所以一般都会用
setTitle:(NSString *)title forState:(UIControlState)state 设置 Title;
2.setAttributedTitle是iOS6之后的方法,使用起来很简单,没特色说明。实例如下:
[uibutton setAttributedTitle:[[NSAttributedString alloc]initWithString:@"3333333"] forState:UIControlStateNormal];
3.对应的currentTitle 也就是/normal/highlighted/selected/disabled状态下的title值,属性为readOnly;
4.至于titleLabel是设置的时候为啥不显示,比较神奇。查了官方文档以后才发现,真正的原因再于:(以下是我使用UIButton打印titleLabel对象的结果)
po uibutton.titleLabel <UIButtonLabel: 0x7575800; frame = (0 0; 0 0); text = '11111111'; clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7572980>>
看到这里你明白了吗?
默认UIButton的titleLable是没设置frame的,而且hidden=YES;只要你设置这2个值就可以正常显示,
无论你采用何种方式生产UIButton:
UIButton *uibtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 100, 100, 30)]; 否者 UIButton *uibtn = [UIButton buttonWithType:UIButtonTypeCustom]; [uibtn setFrame:CGRectMake(0, 100, 100, 30)];
都一样;
以下同理:button的imageView隐藏不隐藏的问题
self.bookButton.imageView.hidden = NO; 不起效果
[self.bookButtonsetImage:[UIImageimageNamed:@"icon_visa_detail_qianggou"]forState:UIControlStateNormal];有效果。
相关文章推荐
- UICollectionView
- UISlider增加触动区域
- UICollectionView
- UIScrollView的三个属性
- WinCE Overlay - 示例:mosquito
- 22个值得收藏的android开源代码-UI篇
- 毕业设计(二十)---使用easyUI dialog 对话框做登陆弹出 表单验证
- 13.UILabel 中的一些属性
- Multiple build commands for output file
- 使用BlockingQueue实现包饺子( 生产者做面皮,消费者拿面皮包饺子)简单使用
- 《代码大全》之错误处理技术(Error-Handling Techniques)
- QT笔记:数据库总结(二)之SQL模型类-QSqlQueryModel模型
- UITabbarController左右滑动切换标签页
- event.returnValue=false和return false的用处
- poj1141 Brackets Sequence(区间dp)
- BlueStacks 使用说明
- iOS 轻松实现UITableViewCell 自适应高度
- Bluemix结合RabbitMq实现消息发送与接收实例
- IOS---NSdata 与 NSString,Byte数组,UIImage 的相互转换
- UICollectionViewLayout 学习(转)