定位到不同的iPhone设备(例如iPhone X和iPhone 8)。我想使用自动调整大小,以距状态栏1px的距离启动 UIView 。我能够通过在iPhone X之前启动 UIView y轴21px来修复此问题。我如何动态地实现此操作,以便 UIView 始终在所有iPhone的状态栏之后启动。

在iPhone 8上看起来还不错

ios - 在状态栏的1像素差异处启动UIView-LMLPHP

在iPhone X上看不到1px的差异,因为视图从顶部凝视

ios - 在状态栏的1像素差异处启动UIView-LMLPHP

最佳答案

iPhone X的更新

以前,所有iPhone设备的状态栏高度均为20pt。但是在iPhone X上是44pt。因此,在实现UI时要小心。

如果要在主线程中更新UI或在viewWillAppear中调用。

CGFloat getstatusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;
CGRect modifyFrame = your1PxFrame.frame ;
modifyFrame.origin.y =  getstatusBarHeight ;
your1PxFrame.frame = modifyFrame;

关于ios - 在状态栏的1像素差异处启动UIView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46639013/

10-14 22:25
查看更多