我用UIScrollView創建了一個視圖。當我嘗試向下滾動時,它在不同設備上的工作方式不同。我發現這是因爲設備的屏幕尺寸不同。我正在使用scrollView.contentSize = CGSizeMake(325, scrollView.frame.height)
來設置滾動視圖高度。當在不同的設備上快速運行時,UIScrollView不會滾動或部分滾動
我碰到這個來的時候,我試圖找到我的問題
CGRect contentRect = CGRectZero;
for (UIView *view in self.scrollView.subviews) {
contentRect = CGRectUnion(contentRect, view.frame);
}
self.scrollView.contentSize = contentRect.size
的解決方案,但因爲我的滾動型由許多子視圖,標籤和不同尺寸不同的按鈕,這並不爲我工作位置。我完成了故事板上所有scrollview的設計,並沒有使用自動佈局。
我需要得到滾動視圖相對於它正在運行的設備的確切高度。有沒有什麼簡單易行的方法來實現這一點?如果沒有,我想知道我需要做些什麼才能達到理想的高度。提前致謝!
我在故事板中安排了子視圖,按鈕和標籤。我正在代碼中完成其餘部分。如您所說,滾動視圖與設備的界限相匹配。你說contentSize不應該改變,但contentSize在不同的設備中不會保持不變。每次在新設備上構建代碼時,我都必須更改代碼中的contentSize,否則它不會以所需的方式滾動。 – ebby94
我很困惑。如果您在故事板中安排控件,那麼您應該知道基於此的contentSize。如果您根據框架的大小在代碼中移動它們,那麼在完成佈局後,您應該能夠計算出contentSize。該代碼片段應該能夠在所有子視圖都處於滾動視圖後運行。它是什麼回來,你認爲它應該返回什麼? – jsd
故事板上的滾動視圖的寬度和高度分別爲325和800。如果我將內容大小設置爲該值,則在iPhone 4上構建它時會正確滾動,而在iPhone 6和6 plus之類的屏幕尺寸較大的設備上運行時,它將無法正常工作。我還檢查了scrollView.frame.height在不同設備上返回不同的值。它在iPhone 4s上返回了712,並在iPhone 6s Plus上返回了968。 – ebby94