iOS UIButton之imageEdgeInsets和titleEdgeInsets的运用

前序

在实际开发中,经常会遇到UIImage+UILabel+点击事件的需求,比较挫的做法就是用UIButton+UIImage+UILabel三个控件组合使用。高级的用法就是使用UIButton一个控件,设置UIButton的Image和TitleLabel。
UIButton同时设置Image和Label时,默认情况是Image在左,Label在右。我们实际需要的效果是Image在上,Label在下,那么此时就需要了解并运用imageEdgeInsets和titleEdgeInsets。

API理解

关于imageEdgeInsets和titleEdgeInsets的详解网上已经有很多的文章:
iOS UIButton之UIEdgeInsets详解

封装与运用

关于imageEdgeInsets和titleEdgeInsets网络上有很多的例子,每次要用到的时候都要去进行一番查询(比较笨,老是记不住),所以自己进行了简单的封装。

扩展UIButton

通过扩展UIButton,提供一个实例方法,直接设置Image的方向,就可自动设置出对应的imageEdgeInsets和titleEdgeInsets。

例子
[self.testBtn setImageAndTitleDirection:FlexDirectionTypeImgRight offset:0];
FlexDirectionTypeImgTop
WeChatfa194fdc491f2f687521b0b0df888872.png
FlexDirectionTypeImgLeft
WeChatabb60d915dbd303e44bc9c6d9089fa21.png
FlexDirectionTypeImgBottom
WeChat3820fd03ccca82826c2ce26d88026790.png
FlexDirectionTypeImgRight
WeChat936986dc03d20e63d26928a8c4817e90.png

代码地址

此为测试Demo,如果您想使用该封装文件,可将Demo中UIButton+flexDirection(.h、.m)文件copy至您的工程。
ButtonFlexDirection

你可能感兴趣的:(iOS UIButton之imageEdgeInsets和titleEdgeInsets的运用)