簡體   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