繁体   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