前序
在实际开发中,经常会遇到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.pngFlexDirectionTypeImgLeft
WeChatabb60d915dbd303e44bc9c6d9089fa21.pngFlexDirectionTypeImgBottom
WeChat3820fd03ccca82826c2ce26d88026790.pngFlexDirectionTypeImgRight
WeChat936986dc03d20e63d26928a8c4817e90.png代码地址
此为测试Demo,如果您想使用该封装文件,可将Demo中UIButton+flexDirection(.h、.m)文件copy至您的工程。
ButtonFlexDirection
网友评论