self.view setFrame无法与iOS 8和Nav Controller一起使用

Jon*_*han 5 ios ios8

有没有人注意到self.view setFrame已停止使用iOS 8中的Nav Controller.如果视图控制器没有导航控制器,它可以正常工作,但除此之外,它没有.有谁知道一个工作?目前我正在使用

[self.view setFrame:CGRectMake(0,-100,[[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height)];
Run Code Online (Sandbox Code Playgroud)

但这不再起作用了

小智 16

在设置框架之前,尝试将"setTranslatesAutoresizingMaskIntoConstraints"设置为YES:

[self.view setTranslatesAutoresizingMaskIntoConstraints:YES];
Run Code Online (Sandbox Code Playgroud)

然后设置你的框架:

[self.view setFrame:CGRectMake(0,-100,[[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height)];
Run Code Online (Sandbox Code Playgroud)


Rob*_* VS 0

我不知道 setFrame 是否已更改,但我可以说 iOS 8 中的“bounds”已更改,其中 UIScreen 类的bounds 属性现在反映了设备方向,因此在横向时宽度和高度将交换。

iOS 8 在 UIScreen 上提供了一个新的 nativeBounds 属性,该属性不会随方向而变化,但请注意,它以像素而不是点为单位进行测量。