iOS(swift) UIButton图片下面加文字(图文混排)

在这里插入图片描述

extension UIButton {
    func imageViewUpTitleLabelDown() {
        self.imageEdgeInsets = UIEdgeInsets(top: 0, left: (self.titleLabel?.frame.size.width)!/2, bottom: (self.titleLabel?.frame.size.height)!+10, right: -(self.titleLabel?.frame.size.width)!/2)     
        self.titleEdgeInsets = UIEdgeInsets(top: (self.imageView?.frame.size.height)!+10, left: -(self.imageView?.frame.size.width)!, bottom: 0, right: 0)
    }
}
class SwitchMapPresentVC: UIViewController {
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        print("\(#function)")
        standardBtn.imageViewUpTitleLabelDown()
    }
  }

注意:

要在UIViewController的viewDidLayoutSubviews()方法中用button调用imageViewUpTitleLabelDown()方法,以为这个时候button的imageView和titleLabel已经布局完成有了大小,在其他地方调用imageView和titleLabel的宽高都是0,可能达不到预期效果

在这里插入图片描述

主要参考博客:
iOS UIButton之UIEdgeInsets详解

其他参考博客:
iOS Button图文混排的四种实现方式

对于UIEdgeInsets还是没有完全理解,下次有时间再写一篇关于UIEdgeInsets的博客

button的宽高为:

100
在这里插入图片描述

120
在这里插入图片描述
150
在这里插入图片描述

200
在这里插入图片描述
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页