我有一个应用程序,支持2种语言,英语和阿拉伯语.英语从左到右,阿拉伯语从右到左.
我有一个名为的控制器LanguageViewController.它有两个按钮:阿拉伯语和英语.当用户点击"阿拉伯语"时,我的应用程序的语言从英语变为阿拉伯语.我在项目中使用自动布局.
当语言改变时,我希望我的对象的位置可以同时被镜像.但它没有&当我关闭我的应用程序并再次运行时,对象的位置被正确镜像.
问题:如何强制"尊重语言方向"从RTL到LTR,反之亦然 @Raz有同样的问题.但我不想建立一个新的故事板.当语言从更改En为Ar并且您退出应用程序时,值userInterfaceLayoutDirection将从更改UIUserInterfaceLayoutDirectionLeftToRight为UIUserInterfaceLayoutDirectionRightToLeft.我NsLog以前看到的价值userInterfaceLayoutDirection.当我按下"阿拉伯语"按钮时,值不会改变,但是当我再次运行时,值会改变.我的问题是如何在userInterfaceLayoutDirection不放弃和不加载新故事板的情况下强制改变?
我在视图中有一个按钮.我在界面构建器中为我的按钮设置了图像.我在界面构建器中添加到按钮的约束是:
正确的超视空间= 10
顶级空间到superview = 10
底部空间到superview> = 10
将空格留给标签> = 10
一切正常,我的布局没问题.但是当我使用以下代码记录按钮约束时:
NSLog(@"constraints for btnBack is: %@", self.btnBack.constraints);
控制台日志:
constraints for btnBack is:(
"<NSContentSizeLayoutConstraint:0x7c35c400 H:[UIButton:0x7c3588a0(102)] Hug:250 CompressionResistance:750>"
"<NSContentSizeLayoutConstraint:0x7c35c450 V:[UIButton:0x7c3588a0(92)] Hug:250 CompressionResistance:750>")
我知道顶部和左右和底部约束不应该在这里记录,因为它们是超视图约束而不是按钮约束.但在这里我没有添加任何宽度和高度约束到我的按钮(即使在代码中).
为什么在控制台中记录约束高度和宽度?