UIButton 设置图片,标题的偏移位置EadgeInsets细节

iOS按钮布局技巧
本文介绍iOS开发中UIButton的三种常见布局方式:纯文字、纯图片及图文混排,并详细讲解如何实现图片与文字的水平与垂直居中效果。

在平时开发中,我们经常遇到各种各样的按钮,每次都要进行调节,而且调节的时候只能一个单位一个单位的试,这样未免也太麻烦了.在调节坐标过程中发现:

1.只有文字

这个没什么好说的,直接setTitle就行


2.只有图片

也没什么说的,setBackgroundImage就行

3.有文字和图片

(1)图片在左,文字在右:

这是系统默认的样式,直接setImage和setTitle就行.图片和标题都默认垂直居中

 UIButton *showButton = [[UIButton alloc]initWithFrame:CGRectMake(10030010050)];

    showButton.backgroundColor = kBlueColor;

    [showButton setTitle:@"选择" forState:UIControlStateNormal];

    [showButton setImage:[UIImage imageNamed:@"mainCellCaiClick"forState:UIControlStateNormal];



(2)图片在上,文字在下,水平居中:

这个就有必要说了,因为系统默认的样式是上面那样的,所以文字会默认向右偏移图片的宽度,同时图片也会向左偏移.如果我们想让标题和图片都水平居中的话,就得强制偏移量还原成0

这时候需要设置EdgeInsets,加上下面两句话:

    [showButton setImageEdgeInsets:UIEdgeInsetsMake(00,20,showButton.titleLabel.intrinsicContentSize.width)];


    [showButton setTitleEdgeInsets:UIEdgeInsetsMake(0, -showButton.imageView.intrinsicContentSize.width, -200)];

    


顺便提一下:UIEdgeInsetsMake(top,left,bottom,right) 这里的四个参数是设置图片或者标题向 上左下右 方向移动的参数

(3)图片在下文字在上,水平居中:

和(2)中的原理是一样的


测试环境:iOS8,iOS10(iOS9应该也是可行的)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值