UIButton上图下文、左文右图实现(附分类方法)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIButton上图下文、左文右图实现(附分类方法)相关的知识,希望对你有一定的参考价值。

参考技术A 我们使用的UIButton默认样式是左图右文的,但是在实际的需求中经常会有左文右图、上图下文的需求,比如下图的支付宝和美团,所用的按钮就是这种样式。

下面我们看一下如何实现这种样式。答案就是修改uibutton的titleEdgeInsets和imageEdgeInsets属性。

UIEdgeInsets

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

titleEdgeInsets和imageEdgeInsets都是相对于UIButton的,所以大胆设置,不要考虑他们会互相影响之类的。

图层是这样子的:

如果想要图文间距为10的话,需要设置文字向右移动5,图片向左移5,即:

下面这种模式,两种写法效果有时是一样的,但是不建议这么写:

上图下文呢:

文字向左移动图片宽度一般的距离,向下移动图片高度一半的距离

图片向右移动文字宽度一般的距离,向上移动文字高度一半的距离

怎么样,看到这里,是不是觉得巨简单,但是又巨麻烦,不想写。

所以这里我写了一个分类,可以设置图片、文字位置,并且设置图文间距。

调用方法:

这样还会有一个问题,左图右文时文字显示距离不够,即使换成上图下文也是会显示...,所以加了一个属性isSizeToFit,使titleLabel自适应宽度。

链接:https://github.com/lzy1010/UIButton-Layout

以上是关于UIButton上图下文、左文右图实现(附分类方法)的主要内容,如果未能解决你的问题,请参考以下文章

Ninject之旅之九:Ninject上下文绑定(附程序下载)

视频时间序列分类方法:动态时间规整算法DTW和R语言实现|附代码数据

分类算法——k最近邻算法(Python实现)(文末附工程源代码)

OpenCV技巧 | 二值图孔洞填充方法与实现(附源码)

机器学习强基计划4-3:详解朴素贝叶斯分类原理(附例题+Python实现)

Pytorch TextCNN实现中文文本分类(附完整训练代码)