1、UIScrollView的問題:
UIScrollView,相信不少開發(fā)者在用SB或者XIB文件開發(fā)時(shí)都曾經(jīng)為它苦惱過,如果是添加一個(gè)普通的UIView類視圖,可能就是拖上去上下左右寬高一類的一通約束,然后搞定
如果我們對(duì)UIScrollView做同樣的事情似乎也沒問題
接下來我們同時(shí)向已經(jīng)存在的view和scrollView里面同時(shí)加入子視圖并設(shè)置他們充滿整個(gè)父視圖大小
結(jié)果scrollView添加完子視圖和約束后報(bào)錯(cuò)了,這說明在scrollView中的約束還不能滿足要求。
2、解決scrollView中的約束問題
其實(shí)scrollView是個(gè)很特殊的控件,它的特殊之處就在于contentSize這個(gè)屬性,想想我們?cè)谑謱懘a向scrollVIew添加子視圖時(shí)是不是需要設(shè)置它的contentSize來確定它的滾動(dòng)區(qū)域。在xib中僅僅設(shè)置子視圖和scrollView的上下左右約束只不過是確定了scrollView的contentSize而已,但是由于子視圖沒有設(shè)置寬度和高度約束,所以會(huì)報(bào)錯(cuò),解決報(bào)錯(cuò)的方法很簡(jiǎn)單,就是設(shè)置這個(gè)子視圖的寬度和高度
可以看到在設(shè)置完子視圖的寬度和高度約束后,紅色警告消失了,至此大功告成,如果需要向scrollView中添加多個(gè)子視圖,只需要確定這些子視圖的寬度和高度以及他們上下左右與scrollView的約束即可
小記:
這篇文章只是從初級(jí)角度窺探和解決了scrollView添加子視圖的問題,之前研究這個(gè)問題時(shí)發(fā)現(xiàn)許多博客都是以一個(gè)containerView為參照來解決scrollView的約束問題,其實(shí)最終目的是一樣的,就是確定視圖的寬度和高度。這篇文章只是一個(gè)開頭,后續(xù)還會(huì)帶來在scrollView中添加更復(fù)雜的視圖的一些思路和方案,同時(shí)會(huì)帶給大家一些關(guān)于iOS9以后才出現(xiàn)的UIStackView在自動(dòng)化布局中的強(qiáng)大。
如果你在閱讀中有什么問題和疑問,歡迎隨時(shí)提出,一塊探討,共同成長(zhǎng)!