UIButton的Image和Title的布局
2015-12-10 15:17
429 查看
UIButton中的titleEdgeInsets和imageEdgeInsets可以管理button中image和title的布局。 如果对其理解不够深入,用纯数字进行布局管理,经过不断的调试,还是能试出来的,但是如果改变了图片大小或文字长度,又要再来一遍。 作为程序猿,我们不应该放弃任何一个偷懒的机会。
默认情况下,是图片在左,文字在右,垂直居中显示,如下图:
设置如下布局后,图片和文字都居中显示。
如果想图片在上,文字在下,水平居中显示,则按下面设置即可:
如果觉得图片和文字离的太近了,稍微分开一点:
文字左对齐,图片右对齐
默认情况下,是图片在左,文字在右,垂直居中显示,如下图:
button.titleEdgeInsets = UIEdgeInsetsZero; button.imageEdgeInsets = UIEdgeInsetsZero;
设置如下布局后,图片和文字都居中显示。
button.titleEdgeInsets = UIEdgeInsetsMake(0, -button.imageView.frame.size.width, 0, 0); // button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, -button.titleLabel.frame.size.width); // 由于iOS8中titleLabel的size为0,用上面这样设置有问题,修改一下即可 button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, -button.titleLabel.intrinsicContentSize.width);
如果想图片在上,文字在下,水平居中显示,则按下面设置即可:
button.titleEdgeInsets = UIEdgeInsetsMake(0, -button.imageView.frame.size.width, -button.imageView.frame.size.height, 0); // button.imageEdgeInsets = UIEdgeInsetsMake(-button.titleLabel.frame.size.height, 0, 0, -button.titleLabel.frame.size.width); // 由于iOS8中titleLabel的size为0,用上面这样设置有问题,修改一下即可 button.imageEdgeInsets = UIEdgeInsetsMake(-button.titleLabel.intrinsicContentSize.height, 0, 0, -button.titleLabel.intrinsicContentSize.width);
如果觉得图片和文字离的太近了,稍微分开一点:
CGFloat offset = 40.0f; button.titleEdgeInsets = UIEdgeInsetsMake(0, -button.imageView.frame.size.width, -button.imageView.frame.size.height-offset/2, 0); // button.imageEdgeInsets = UIEdgeInsetsMake(-button.titleLabel.frame.size.height-offset/2, 0, 0, -button.titleLabel.frame.size.width); // 由于iOS8中titleLabel的size为0,用上面这样设置有问题,修改一下即可 button.imageEdgeInsets = UIEdgeInsetsMake(-button.titleLabel.intrinsicContentSize.height-offset/2, 0, 0, -button.titleLabel.intrinsicContentSize.width);
文字左对齐,图片右对齐
button.titleEdgeInsets = UIEdgeInsetsMake(0, -button.imageView.frame.size.width - button.frame.size.width + button.titleLabel.intrinsicContentSize.width, 0, 0); button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, -button.titleLabel.frame.size.width - button.frame.size.width + button.imageView.frame.size.width);
相关文章推荐
- UITableViewCell 自定义点击状态时背景颜色
- Android BlueDroid(三):BlueDroid蓝牙开启过程enable
- Android BlueDroid(二):BlueDroid蓝牙开启过程init
- UIToolBar
- Android BlueDroid(一):BlueDroid概述
- Error:Your request produced an error.[newNullResponse]
- [DP] Unique Paths
- Confluence5.8.10安装和破解
- Confluence5.8.10安装、破解、设置
- UIView提供坐标系转换方法
- IOS --- UITableView 表示图(头部和尾部)
- iOS中UITextField的字数限制
- (java)Implement Stack using Queues
- jfinal框架ueditor上传图片的实现方法
- windows下 BurpSuite pro安装
- iOS 代码实现获得应用的版本号(Version/Build)
- @GeneratedValue
- IOS-UIScrollView
- UI视图控件、视图嵌套、SubView、Tag 的使用
- UI - 绘制 - 文字(或者其他控件)阴影效果