IOS_自定义UIButton的子视图位置 EdgeInsets属性

来源:互联网 发布:免费门窗设计软件 编辑:程序博客网 时间:2024/06/17 22:44

很多时候我们会遇到这样的需求,一个按钮上需要既有图片又有字符串的情况。

这个时候就需要使用EdgeInsets 属性。

官方说明:

typedef struct UIEdgeInsets {

    CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'

} UIEdgeInsets;


具体代码如下:

[java] view plaincopyprint?
  1. UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(80*i, 08049)];  
  2. [btn setBackgroundColor:[UIColor clearColor]];  
  3. [btn setBackgroundImage:[UIImage imageNamed:@"detail_back_common.png"] forState:UIControlStateNormal];  
  4. [btn setBackgroundImage:[UIImage imageNamed:@"detail_back_pressed.png"] forState:UIControlStateHighlighted];  
  5.   
  6. SEL sel = NSSelectorFromString(selectors[i]);  
  7. [btn addTarget:self action:sel forControlEvents:UIControlEventTouchUpInside];  
  8.   
  9.   
  10. [btn setImage:[UIImage imageNamed:images[i]] forState:UIControlStateNormal];  
  11. [btn setTitle:titles[i] forState:UIControlStateNormal];  
  12. btn.titleLabel.font = [UIFont systemFontOfSize:14.0];  
  13. [btn setTitleColor:COMMON_BG_COLOR forState:UIControlStateNormal];  
  14.   
  15. [btn setImageEdgeInsets:UIEdgeInsetsMake(-21.028.00.00.0)];  
  16. [btn setTitleEdgeInsets:UIEdgeInsetsMake(15.0, -19.00.00.0)];  
  17.   
  18. [bottomBar addSubview:btn];  


所以很多属性的关系需要我们灵活使用

setBackgroundImage

setImage

setTitle

setImageEdgeInsets

setTitleEdgeInsets

重点就是多多看看API

只是抛砖引玉,有兴趣的自己多学习。


转自:http://blog.csdn.net/u011220580/article/details/9292623

原创粉丝点击