我一直在Google上搜索,似乎無法找到我有問題的答案。根據設備垂直尺寸自動設置UIView垂直尺寸(包括自動佈局更改)
我正在寫一個應用程序,並希望子UIView的垂直空間,以保持設備的高度或父設備的旋轉,而不管方向如何,並且不提前對值進行硬編碼。
我的佈局結構爲:
ViewContainer
UIView
UIScrollView
UIView (Content View)
具體來說,我想有內容查看初始設置是設備/取向的原生高度的垂直空間,它正在運行在設備旋轉時,我希望垂直空間更改爲新的垂直高度。 UIScrollView將僅用於水平平移。
我將使用Quartz在視圖中繪製。我是否通過intrinsicContentSize
設置初始高度?如果是這樣,我該如何查詢父視圖?
我試過在內容視圖中使用self.superview
,但這不起作用。如何檢測到發生了變化,發生變化後,如何獲得新的Y分辨率,然後應用它?另外我不想禁用自動佈局,如果我不必。
這是一個視覺的我想要的東西,如果我還沒有做出明確表態: https://www.evernote.com/l/AAI3VFkKBARPlYPsoURJOwAmIiGielF5p-w
我會根據'UIScreen.mainScreen()。bounds.size.height'(或橫幅,如果你在橫向)的大小。然後使用'UIDeviceOrientationIsLandscape()'宏。還有其他一些人也喜歡它。看看他們。 –
我已經嘗試修改TN2154中的Pure AutoLayout代碼,但是我無法檢測到更改(並且我不確定這是否是正確的方法來首先解決問題)。我可以通過intrinsicContentSize強制大小,但不知道如何正確檢測大小,或者發生旋轉的時間。我一直在看viewWillTransitionToSize,但不知道這是正確的方法。 – Tornado
要獲得方向更改的通知,您可以訂閱通知。不知道這是否適合您的用例,但這裏是代碼片段[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged :) name:UIDeviceOrientationDidChangeNotification object:nil];'然後確保您有一個名爲'orientationChanged '接受'NSNotification'參數 –