iOS 在storyBoard中使用scrollView的方法


引言: 最近在寫一個項目的時候, 使用的storyBoard, 期間用的scrollView, 由於之前習慣於純代碼編寫, 對於storyBoard一直使用的較少, 也就導致在使用scrollView的時候遇到很多的不便, 這里簡單寫一些個人的經驗, 希望對大家有所幫助

一, 首先, 第一個問題, 我們需要在scrollView上放的東西太多, 而storyBoard中的ViewController太小, 使得整體布局很不舒服

解決辦法:①.選中整個視圖控制器, 設置Size →Freeform

②. 設置視圖控制器的的height, 我這里為了測試, 設置的時1000, 各位可以根據實際需求, 自行設置需要的高度, 設置完之后, 試圖控制器就會變成我們設置的高度, 如下圖, 這時我們就可以在上面添加一個scrollView, 做我們想要的布局了. 也許你會問, 為什么不用tableView, 我用到scrollView的原因主要是我們的項目中的需求模塊已經固定, 不會再添加新的內容, 用tableView對於我的項目並不節省時間, 而且界面看起來不夠直觀!

③.做好我們想要的布局, 如果我們想讓整個storyBoard看起來並不那么別扭, 我們就需要把試圖控制器設置成我們習慣的尺寸(如下圖), 前提, 你需要把你之前繪制好的頁面做好約束, 這樣我們換回我們習慣的尺寸, 雖然storyBoard上有些視圖是看不到, 但是由於約束的存在這些布局並不會亂掉.

二, scrollView的屬性設置

①. 對於我的項目來說, 我的scrollView並不需要滑動后自動回去的情況, 所以需要取消勾選該項

②. 設置scrollView的contentSize, 由於本人之前沒用過storyBoard的scrollView, 所以並沒找到設置contentSize的位置(知道怎么設置的朋友, 可以分享下), 這也就使得每次給scrollview添加完約束后沒問題,在storyboard上添加視圖后, 設置完約束后就會出問題.我設置了view的左右和上的約束, 同時把高固定, 他是會報一個錯誤的.如圖.

在一個帖子中看到說這種情況是由於使用autolayout之后, 這里需要通過約束計算出你的contensize, 但當前的約束使得系統並不足以算出contentsize, 所以就報了一個錯, 帖子傳送門:http://www.cocoachina.com/ios/20141118/10242.html.

以下是我對於這種情況的解決辦法, 雖然你會覺得有點太扯了, 但是我反正就是這么做的, 因為我真心不知道需要怎么加這個約束, 還望懂的不惜賜教!以下是我的解決辦法:

首先點擊報紅的地方,這里提示對於這個view的約束是有問題的, 這個問題反正我是不太懂,如下:

點擊這個警告, 會有提示, 第一個是更新約束, 第三個是重新設置, 對!是根據當前重新設置約束, 就是它了, 選中,點擊Fix Missplacement,如圖

奇跡出現了, 紅沒了, 這時候你再在scrollview上添加視圖的時候, 在設置約束的時候就不會報紅了, 因為他已經可以自己計算出contentSize了.

雖然這種方法很不科學, 並不能從根本上解決這個問題, 因為畢竟沒有找到問題的根源所在, 但奈何本人水平過次, 實在沒招了, 就這么解決了, 之后各種屏幕都做過測試, 並沒有出現亂掉的情況, 真機測試也是完美通過.

這里還望懂的親們不惜賜教哈!跪謝..

三. 有可能遇到的情況

scrollView不能滑動, 或者模擬器可以滑動, 但用真機測試不能滑動, 解決辦法可以參照:http://www.cnblogs.com/humbleCP/p/4213169.html

當然, 也可能遇到其他的一些情況, 比如是約束的問題、屬性設置的問題等等, 具體的可以到時仔細檢查下.

 

結語. 該內容是本人之前寫項目中遇到后, 自己用來解決問題的辦法, 希望對大家能有所幫助, 純屬本人自己摸索, 或許大家會有一些更好, 更官方的用法, 希望大家一塊交流分享! 謝謝大家.


免責聲明!

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



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