iOS學習紀事——ScrollView不能滾動問題


首先,這真是個挺蛋疼的問題。

UIScrollView,即可滾動視圖。我參考的書上關於UIScrollView的講解並不多,只是三言兩語再加一個小例子。

但是在根據例子做完之后發現,它竟然滾不起來。contentSize屬性的值我也按照書上的方法設置了,又懷疑值設得不夠大改了又改,還是沒用。Attributes inspector里面找看着像的地方選上或是取消勾選,也還是沒用……

然后。。。我猜測是版本的原因,因為書講的是iOS5,而我用的是6.1的sdk。於是去查UIScrollView的文檔,但是沒找到有關的信息。

怎么辦呢真捉急。。。

后來。。。已經忘了當時是怎么發現問題所在的了,大概是在擺弄ScrollView里面子視圖(一個Button,該Button在可視區域外)的位置時,看到它的Size inspector中有個地方挺奇怪的(下圖),這里的值是一個負數。

當時還不大明白具體是什么意思,選擇編輯之后,Utilities面板上如下面左圖所示。

          

我選中Standard復選框,Constant后面即顯示“Auto”(再取消選中則變成20)。然后我試着運行,居然可以滾動了!

原來這個地方是視圖與視圖、視圖與父視圖之間的約束(Constraint),可實現自動布局(Auto Layout)。在這里,“Bottom Space to:Superview Equals:-59.000000”表示該Button與ScrollView的Bottom之間的距離固定為-59(根據我自己的理解,這里ScrollView的Bottom應該指其實際的Height,而不是在Interface Builder中可視的Height)。而這個約束正好使ScrollView的Height和Bottom相等了,所以在運行的時候就無法滾動了,即使設置了contentSize。

我又IB中反復折騰了多次,約束這玩意兒實在是飄忽不定。看Apple的文檔也是看得一知半解。先按下不表吧,整明白了再說。

Auto Layout是Xcode4.1加入的新特性,貌似iOS 6之前不支持。如果嫌它麻煩的話可以不用它(File inspector中可選),對於ScrollView的問題倒也省心,哈哈。

(最后,以上有理解不對的地方,還請指正,謝謝!)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM