2017-10-09 84 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