UIButton ------ UIEdgeInsets属性

UIButton共有三种属性
1.contentEdgeInsets
2.titleEdgeInsets
3.imageEdgeInsets

UIEdgeInsets

先来看看内部代码是怎样写的

typedef struct __attribute__((objc_boxable)) UIEdgeInsets {
    CGFloat top, left, bottom, right; 
} UIEdgeInsets;

原来是结构体,它的四个参数:top, left, bottom, right, 分别表示距离上边界,左边界,下边界,右边界的位移,默认值均为0。

在这里插入图片描述

contentEdgeInsets

我们都知道,UIButton按钮可以只设置一个UILabel或者一个UIImageView,还可以同时具有UILabel和UIImageView;如果给按钮设置contentEdgeInsets属性,就是按钮的内容整体(包含UILabel和UIImageView)进行偏移

按钮内容整体向右下分别移动10像素:

button.contentEdgeInsets = UIEdgeInsetsMake(10, 10, -10, -10);
titleEdgeInsets & imageEdgeInsets

这两个属性的效果是相辅相成的。如果给一个按钮同事设置了title和image,他们默认的状态是图片在左,标题在右,而且image和title之间没有空隙;那就这就引出一个问题,title和image的UIEdgeInsets属性分别的相对于谁而言的?

真相只有一个:
image的UIEdgeInsets属性的top,left,bottom都是相对于按钮的,right是相对于title
title的UIEdgeInsets属性的top,bottom,right都是相对于按钮的,left是相对于image

搞清楚了这个,你再来看看这篇文章
iOS 调整UIButton 图片(imageView)与文字(titleLabel)的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值