繁体   English   中英

当将图像添加到按钮时,如何禁用UIButton的标题调整?

[英]How to disable the title of UIButton shifiting to right when an image is added to the button?

我创建了一个自定义UIButton类,以在屏幕的右边缘显示按钮的图像。

代码如下-

class CutomButton: UIButton {    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setup()
    }

    func setup() {
        imageView?.translatesAutoresizingMaskIntoConstraints = false
        imageView?.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -8).isActive = true
        imageView?.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true
    }
}

上面的代码按预期工作。 但是,按钮的标题向右移动,就像imageView处于其原始位置一样(位于标题的左侧)。

谁能指出如何将按钮的标题放置到其原始位置,就像按钮的图像不存在一样?

默认情况下, UIButton类在内部进行管理,但您确实有一些选择:

简易模式:修改在UIButton中定义的边插入: titleEdgeInsetsimageEdgeInsets 在不同的SO帖子中查找先前的答案,该答案足够类似,但您只需根据需要进行修改即可。

先进(但更灵活)模式:由于正在创建子类,因此可以代替UIControl而不是UIButton 由于UIButton是UIControl的子类,因此触摸事件仍以与UIButton相同的方式注册,并且您可以覆盖isHighlighed / isSelected以控制“自定义按钮”在触摸状态下的显示方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM