Swift_创建文字在左图片在右的UIButton

58 篇文章 0 订阅

创建一个类继承自UIButton

import UIKit

 

class TitleAndImageButton: UIButton {

 

    override init(frame: CGRect) {

        super .init(frame: frame)

           setUpUI()

    }

    //通过XIB/SB创建时调用

    required init?(coder aDecoder: NSCoder) {

//        fatalError("init(coder:) has not been implemented")

        super.init(coder: aDecoder)

        setUpUI()

    }

    func setUpUI() {

        setImage(UIImage.init(named: "navigationbar_arrow_down"), for: .normal)

        setImage(UIImage.init(named: "navigationbar_arrow_up"), for: .selected)

        setTitleColor(UIColor.gray, for: .normal)

        setTitleColor(UIColor.orange, for: .selected)

        adjustsImageWhenHighlighted = false

        sizeToFit()

    }

    override func setTitle(_ title: String?, for state: UIControl.State) {

        super.setTitle((title ?? "") + " ", for: state)

    }

    

    override func layoutSubviews() {

        super.layoutSubviews()

        titleLabel?.frame.origin.x = 0

        imageView?.frame.origin.x = titleLabel!.frame.width

    }

}

 

 

调用的时候

  let titleBtn = TitleAndImageButton() //如果需要尺寸,自己换成frame的

      titleBtn.setTitle("标题展示", for: .normal)

      titleBtn.addTarget(self, action: #selector(titleBtnClick(_:)), for: .touchUpInside)

    @objc private func titleBtnClick(_ btn : UIButton) {

        btn.isSelected = !btn.isSelected

    }

这样就可以了

然后图片和文字都可以在外边用系统方法替换掉

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值