小编ami*_*ade的帖子

如何更改userInterfaceLayoutDirection

我有一个应用程序,支持2种语言,英语和阿拉伯语.英语从左到右,阿拉伯语从右到左.

我有一个名为的控制器LanguageViewController.它有两个按钮:阿拉伯语和英语.当用户点击"阿拉伯语"时,我的应用程序的语言从英语变为阿拉伯语.我在项目中使用自动布局.

当语言改变时,我希望我的对象的位置可以同时被镜像.但它没有&当我关闭我的应用程序并再次运行时,对象的位置被正确镜像.

问题:如何强制"尊重语言方向"从RTL到LTR,反之亦然 @Raz有同样的问题.但我不想建立一个新的故事板.当语言从更改EnAr并且您退出应用程序时,值userInterfaceLayoutDirection将从更改UIUserInterfaceLayoutDirectionLeftToRightUIUserInterfaceLayoutDirectionRightToLeft.我NsLog以前看到的价值userInterfaceLayoutDirection.当我按下"阿拉伯语"按钮时,值不会改变,但是当我再次运行时,值会改变.我的问题是如何在userInterfaceLayoutDirection不放弃和不加载新故事板的情况下强制改变?

user-interface objective-c right-to-left ios autolayout

8
推荐指数
1
解决办法
1616
查看次数

当我NSLog myBtn.constraints时会记录额外的约束

我在视图中有一个按钮.我在界面构建器中为我的按钮设置了图像.我在界面构建器中添加到按钮的约束是:

正确的超视空间= 10

顶级空间到superview = 10

底部空间到superview> = 10

将空格留给标签> = 10

一切正常,我的布局没问题.但是当我使用以下代码记录按钮约束时:

NSLog(@"constraints for btnBack is: %@", self.btnBack.constraints);
Run Code Online (Sandbox Code Playgroud)

控制台日志:

constraints for btnBack is:(

"<NSContentSizeLayoutConstraint:0x7c35c400 H:[UIButton:0x7c3588a0(102)] Hug:250 CompressionResistance:750>"

"<NSContentSizeLayoutConstraint:0x7c35c450 V:[UIButton:0x7c3588a0(92)] Hug:250 CompressionResistance:750>")
Run Code Online (Sandbox Code Playgroud)

我知道顶部和左右和底部约束不应该在这里记录,因为它们是超视图约束而不是按钮约束.但在这里我没有添加任何宽度和高度约束到我的按钮(即使在代码中).

为什么在控制台中记录约束高度和宽度?

ios ios-autolayout

5
推荐指数
1
解决办法
806
查看次数