2017-10-09 57 views
2

,针对不同的iPhone设备,如iPhone X & iPhone 8的1个像素的差异我想用自动调整开始我的UIView就在1px的从状态栏上的差异。我能够通过iPhone X.之前开始的UIView y轴21px来解决这件事情我怎么能动态地实现这件事情让的UIView所有iPhone的居留制棒后开始工作。开始的UIView在状态栏

在iPhone 8,再加上它看起来很好

enter image description here

在iPhone X 1px的区别是没有看到,因为鉴于从顶部

enter image description here

+0

显示你试过代码 –

+0

@ Anbu.Karthik使用Autoresizing我想实现这一点。请看图片 – Ali

回答

2

更新凝视iPhone X

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

如果要更新mainthread中的UI或调用viewWillAppear。

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

谢谢兄弟。如果可能的话,我只想了解autoresizing。如果不是用autoresize实现的,我会用代码:) – Ali

+1

@Ali - 有时候我们需要用代码的帮助覆盖UI,据我所知,在这里你不能直接在Storyboard –

2

您应该使用自动布局!

使用autolayout and xcode 9您可以像下面那样管理它!

在您的故事板或iphone 7或8的xib中取出UIView!

然后在它上面拖放并放下UIView(您想要为其设置一个像素空间的视图)。

就像它的y成为21 pixel

然后从safe area这种看法给予顶部约束,并给其他需要像龙头,尾部固定高度限制等

请参考下截图更好的理解!

enter image description here

,结果是:

iPhone 8加:

enter image description here

iPhone X:

enter image description here

+0

中设置我的兄弟?是与自动调整不自动布局兄弟 –

+0

是啊这就是为什么我在我的答案写道,你应该使用自动布局!如果提问者将使用自动布局,那么这是管理的最佳方式! @ Anbu.Karthik – Lion

+0

@Lion应用程序是使用自动调整功能开发的。如果我将其更改为自动布局,则需要大量时间。这就是为什么我要求autoresizing。感谢您的回复 – Ali