我正在使用LTR和RTL语言的应用程序。一切都很好但是UIButton标题对齐并没有改变到正确,尽管UIButton翻转自己。 这是截图:
默认语言英语的约束:
问题是什么?为什么会发生?我们是否需要以编程方式将标题设置为正确?
答案 0 :(得分:1)
使用故事板中的右对齐
或以编程方式
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