iOS UIButton setImageEdgeInsets||setTitleEdgeInsets属性

本文介绍如何使用UIButton的setImageEdgeInsets和setTitleEdgeInsets方法调整按钮内图片视图和标题标签的位置,实现不同布局需求,如图片在上文字在下或图片在右文字在左等效果。

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

使用UIButton的过程中不可避免的会遇到对Button中ImageView和TieleLabel布局修改的问题、官方也提供了:
[button setImageEdgeInsets:UIEdgeInsets];
[button setTitleEdgeInsets:UIEdgeInsets]
这两个方法操作ImageView和TitleLabel的偏移量来达到各种各样的需求。

通常使用UIEdgeInsetsMake(top , left , bottom , right);进行偏移量的设置
top:在原坐标基础上向下移动
left:在原坐标基础上向右移动
bottom:在原坐标基础上向上移动
right:在原坐标基础上向左移动
以上表示设置参数为正时控件的移动方向、为负值移动方向相反。

由于button对ImageView和TitleLabel同时存在时候的默认布局是ImageView在左TitleLabel在右、那么通过这个属性我们就可以满足类似以下需求
这里写图片描述

举个例子

/*
ImageView在上、TitleLabel在下。
*注意获取titleLabel宽高用
button.titleLabel.intrinsicContentSize.height
button.titleLabel.intrinsicContentSize.width
获取
*/

[button setImageEdgeInsets:UIEdgeInsetsMake(-button.titleLabel.intrinsicContentSize.height, 0, 0, -button.titleLabel.intrinsicContentSize.width)];
        [button setTitleEdgeInsets:UIEdgeInsetsMake(0, -button.imageView.frame.size.width ,-button.imageView.frame.size.height, 0)];

/*
ImageView在右、TitleLabel在左。
*/

[button setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, button.imageView.image.size.width + 10)];
            [button setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, -button.intrinsicContentSize.width+ 15)];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值