UIScrollView可滾動內容大小模糊各位開發者,我在Interface Builder(Xcode 5 / iOS 7)中遇到AutoLayout問題。這是非?;竞椭匾?,所以我想每個人都應該知道這是如何正常運作的。如果這是Xcode中的一個錯誤,它是一個關鍵的錯誤!所以,每當我有一個像這樣的視圖層次結構時,我遇到了麻煩:>UIViewController>> UIView>>>UIScrollView>>>>UILabel (or any other comparable UIKit Element)UIScrollView具有可靠的約束,例如,每側50 px(沒問題)。然后我向UILabel添加一個Top Space約束(沒問題)(我甚至可以固定標簽的高度/寬度,不做任何改變,但由于Label的內在大小,應該是不必要的)當我向UILabel添加尾隨約束時,麻煩就開始了:例如,尾隨空間:Superview等于:25現在出現了兩個警告 - 我不明白為什么:A)可滾動內容大小歧義(滾動視圖具有不明確的可滾動內容高度/寬度)B)錯位視圖(預期標簽:x = -67實際值:x = 207我在一個新的項目中做了這個最小的例子,你可以下載并附上截圖。如您所見,Interface Builder期望Label位于UIScrollView邊界之外(橙色虛線矩形)。使用Resolve Issues Tool更新Label的框架會將其移動到那里。請注意:如果用UIView替換UIScrollView,行為就像預期的那樣(Label的框架是正確的,并且根據約束條件)。所以似乎UIScrollView存在問題,或者我錯過了重要的事情。當我按照IB的建議運行應用程序而不更新Label的框架時,它定位得很好,正好在它應該是的位置,并且UIScrollView是可滾動的。如果我更新框架,標簽不在視線范圍內,UIScrollView不會滾動。幫助我Obi-Wan Kenobi!為什么模棱兩可的布局?為什么錯位觀點?你可以在這里下載示例項目,如果你能弄清楚發生了什么就試試:https://github.com/Wirsing84/AutoLayoutProblem
3 回答

烙印99
TA貢獻1829條經驗 獲得超13個贊
這個錯誤花了我一段時間來追蹤,最初我嘗試固定ScrollView的大小,但錯誤信息清楚地說“內容大小”。我確保從ScrollView頂部固定的所有內容也固定在底部。這樣,ScrollView可以通過查找所有對象和約束的高度來計算其內容高度。這解決了模糊的內容高度,寬度非常相似......最初我在ScrollView中居住了大部分X,但我還必須將對象固定到ScrollView的側面。我不喜歡這樣,因為iPhone6可能有更寬的屏幕,但它會消除“模糊內容寬度”錯誤。
- 3 回答
- 0 關注
- 800 瀏覽
添加回答
舉報
0/150
提交
取消