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

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



这个时候就需要使用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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值