我想在我的應用程序中顯示一個簡單的設置屏幕,我使用Autolayout。由於我的應用支持風景,並且設置控件在手機橫向時不太適合,所以我添加了UIScrollview。UIScrollview與Autolayout風景內容大小
看來,UIScrollview和Autolayout的組合是這裏和其他地方的常見問題。我已經閱讀了一些關於它的文章,從它可以告訴的一點看,我想要做的事情的一個好方法是將我的各種控件放在一個視圖中,例如帶有約束的「contentView」在這一觀點上一致。然後讓contentView成爲UIScrollView的唯一子視圖。我有與UIScrollView的邊緣綁定約束的contentView。
UINavigationView -> UIScrollview -> contentView (UIView) -> Control Subviews
它工作在縱向細,即使我添加的內容在我的內容查看,需要滾動看到的,但是當我去的風景,它不會讓我向下滾動遠遠不夠。這就像我旋轉時內容大小被重置到可見區域的框架(或導航控制器超級視圖的框架)。
我想知道如果我需要檢查旋轉,然後在那個時候重新設定內容的大小?如果是這樣,有沒有辦法從視圖(contentView)動態地獲得這個大小?
感謝您提供的任何幫助! 吉姆
感謝您的信息。 我沒有嘗試過從調試器的遞歸輸出提示,所以這是一個很酷的把戲。從我的樣品差異是,我有一箇中間UIView(我稱之爲「contentView」)之間我的UIScrollView和我的滑塊和開關等 這就是說,大提示似乎是從高度約束滾動視圖。一旦我將其刪除,我就可以在肖像中一路向下滾動。事實上,它已經超過了內容(可能仍然是肖像的大小),但至少我可以達到內容!謝謝... – Jim
我的意思是移除scrollview的垂直高度約束後,我可以滾動一路(甚至過去) Landscape模式的內容。當方向改變時,我可能需要在「contentView」上強制進行某種刷新以使內容匹配完全匹配,但是太高不如太短。再次感謝你的幫助。 – Jim
@Jim「它超越了內容」問題可能是該開關的底部約束對容器視圖的影響,以及從容器視圖底部到滾動視圖底部的約束。沒有看到這個項目很難說。底線,如果你正確地得到你的約束,你肯定不需要在orientationSize方面改變'contentSize'。 – Rob