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

这个时候就需要使用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;
具体代码如下:
- UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(80*i, 0, 80, 49)];
- [btn setBackgroundColor:[UIColor clearColor]];
- [btn setBackgroundImage:[UIImage imageNamed:@"detail_back_common.png"] forState:UIControlStateNormal];
- [btn setBackgroundImage:[UIImage imageNamed:@"detail_back_pressed.png"] forState:UIControlStateHighlighted];
-
- SEL sel = NSSelectorFromString(selectors[i]);
- [btn addTarget:self action:sel forControlEvents:UIControlEventTouchUpInside];
-
-
- [btn setImage:[UIImage imageNamed:images[i]] forState:UIControlStateNormal];
- [btn setTitle:titles[i] forState:UIControlStateNormal];
- btn.titleLabel.font = [UIFont systemFontOfSize:14.0];
- [btn setTitleColor:COMMON_BG_COLOR forState:UIControlStateNormal];
-
- [btn setImageEdgeInsets:UIEdgeInsetsMake(-21.0, 28.0, 0.0, 0.0)];
- [btn setTitleEdgeInsets:UIEdgeInsetsMake(15.0, -19.0, 0.0, 0.0)];
-
- [bottomBar addSubview:btn];
所以很多属性的关系需要我们灵活使用
setBackgroundImage
setImage
setTitle
setImageEdgeInsets
setTitleEdgeInsets
重点就是多多看看API
只是抛砖引玉,有兴趣的自己多学习。
转自:http://blog.youkuaiyun.com/u011220580/article/details/9292623