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

本文介绍了如何在按钮上同时显示图片与文字,并通过使用EdgeInsets属性实现布局优化,包括设置背景图片、图标、标题的位置与大小,以及如何灵活运用API进行布局调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这个时候就需要使用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 plain copy print ?
  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.youkuaiyun.com/u011220580/article/details/9292623

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值