UIButton标题对齐在RTL中没有改变到正确的方向

时间:2017-07-26 06:02:50

标签: ios swift3 uibutton xcode8

我正在使用LTR和RTL语言的应用程序。一切都很好但是UIButton标题对齐并没有改变到正确,尽管UIButton翻转自己。 这是截图: UIButton in RTL

Alignment Given

默认语言英语的约束:

Constraints given for default language english:

问题是什么?为什么会发生?我们是否需要以编程方式将标题设置为正确?

3 个答案:

答案 0 :(得分:1)

使用故事板中的右对齐

enter image description here

或以编程方式

buttonShowOnMap.contentHorizontalAlignment = .left//For left alignment

buttonShowOnMap.contentHorizontalAlignment = .right//For right alignment

答案 1 :(得分:0)

不知道为什么会发生,但你必须继承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
}

通过上面的代码实现它。

答案 2 :(得分:0)

接受的答案对我没有帮助。但是下面的代码片段可以自动支持RTL和LTR语言:

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

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