簡體   English   中英

UIButton 標題對齊在 RTL 中沒有改變到正確的方向

[英]UIButton title alignment not changing to right direction in RTL

我有一個 LTR 和 RTL 語言的應用程序。 一切都很好,但 UIButton 標題對齊並沒有改變,盡管 UIButton 自己翻轉。 這是屏幕截圖: RTL 中的 UIButton

給定的對齊方式

為默認語言英語給出的限制:

為默認語言英語給出的限制:

這是什么問題,為什么會發生? 我們是否需要以編程方式將標題設置為右對齊?

使用故事板中的右對齊作為

在此處輸入圖片說明

或以編程方式作為

buttonShowOnMap.contentHorizontalAlignment = .left//For left alignment

buttonShowOnMap.contentHorizontalAlignment = .right//For right alignment

接受的答案對我沒有幫助。 但是以下代碼段可以自動支持 RTL 和 LTR 語言:

// makes button content support RTL <-> LTR
button.contentHorizontalAlignment = .leading

// makes titleLabel support RTL <-> LTR
button.titleLabel?.textAlignment = .natural 

不知道為什么會發生,但您必須繼承 UIButton 以便您可以覆蓋alignmentRectInsets

override func alignmentRectInsets() -> UIEdgeInsets {
    var insets: UIEdgeInsets
    if (Left_Side_Button) {
        insets = UIEdgeInsetsMake(0, 7.0, 0, 0)
    }
    else {
        // Right Button
        insets = UIEdgeInsetsMake(0, 0, 0, 7.0)
    }
    return insets
}

並通過上述代碼實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM