ios 自定义Button实现 按钮标题在图标下方


import UIKit
//  自定义button
class myButton: UIButton {
    
    
//  重写isHighlighted (重写目的: 在改变btn的transform时 不让去其调用layoutSubviews)
//因为这时一旦调用layoutSubviews , btn的位置也会跟着变化
    override var isHighlighted: Bool {
        get {
            return false
        } set {
            //  空实现
        }
    }
    

    override init(frame: CGRect) {
        super.init(frame: frame)
        // 设置图片的模式 -> 原始大小居中显示
        imageView?.contentMode = .center
        //  设置文字居中
        titleLabel?.textAlignment = .center

//--------------下面这些也可以在外部设置---------------

        //  设置文字颜色
        self.setTitleColor(UIColor.darkGray, for: .normal)
        //  设置文字字体大小
        titleLabel?.font = UIFont.systemFont(ofSize: 14)
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    //  ----------调整系统子控件的位置-------重要--------
    override func layoutSubviews() {
        super.layoutSubviews()
        //  设置图片的大小
        //  执行transform动画,不能使用frame(注意)
        imageView?.width = width
        imageView?.height = width
        //  图片的y轴
        imageView?.y = 0
        //  设置文字label的大小
        titleLabel?.width = width
        titleLabel?.height = height - width
        //  设置title的y坐标
        titleLabel?.y = width
        titleLabel?.x = 0

    }

}
 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容