scrollerview和tableview的結(jié)合使用

本文的主要目的是使用scrollview和tableview,實現(xiàn)下面的圖的效果,其中數(shù)據(jù)都是靜態(tài)的。Mychannel和all channel兩個tap可以自由切換。

http://stackoverflow.com/questions/19561269/autolayout-with-hidden-uiviews

這里面有一個思路需要參考:如果左邊沒有image view,則通過constant和priority來調(diào)整,似的文字往左邊頂!

結(jié)構(gòu)分析:

1. 最上面是一個scroll view,允許左右滑動,其中每個卡片都能響應(yīng)事件,所以這里每一個item都是一個button,用image作為button的背景圖

2. 下面是一個大的container UIView,包含了一個標(biāo)題欄,里面有兩個Tap;還有一個是scrollView,左右可以滑動在My Channel和All Channels之間切換,同時也可以直接點擊切換

3. 第一個Tap下面添加了一個獨立的controller,里面放入了tableview

最終實現(xiàn)的效果圖

制作scroll view實現(xiàn)左右滑動

collection View

1. 首先要聲明scroll view的內(nèi)容寬度:topScrollView!.contentSize=CGSizeMake(CGFloat(180*4),0)//因為是橫向滾動,是四張圖片,每張的寬度是180

2. 每一個item是一個button,然后給button加上的背景圖片

3. 最后將每一個button作為subview添加到這個scrollerview里面

制作兩個Tap View

tap view

因為這兩個tap可以左右切換,所以放了兩個button。

container里面放入scroll view

animation view & channel scrollview

1. tap下面還放了一個指示左右滾動的滑條

2. 因為放了兩個tap,所以整個contentsize是兩個container view的寬度

如何將table view添加到scroll view里面

1. scroll view里面放了兩個controller,通過tap來切換

2. 如何實現(xiàn)根據(jù)文字(description的高度來自適應(yīng)cell的高度):關(guān)鍵是autolayout

3. 這里我們單獨創(chuàng)建了一個view controller,里面放了一個tableview,撐滿整個view;其中autolayout最重要的第一點就是tableview的height=top layout

4. 單獨設(shè)計了tableview cell 的prototype,左邊是一個圖片,右邊是文字+文字

5. cell里面為了實現(xiàn)內(nèi)容的自適應(yīng),根據(jù)文字的高度來調(diào)整cell的高度,其中圖片的大小是固定的(包括寬和高),這里最重要的就是image view和description lable view的距離底部的content view的約束條件都是>=0

約束的定義

如何實現(xiàn)cell的自適應(yīng)高度還有一點比較重要:預(yù)估高度,講rowHeigh的屬性設(shè)置為AutomaticDimension

self sizing cell

如何添加controller到scroll view里面:

1. 初始化storybaord里面的兩個controller

2. 這里需要注意添加addChildViewController:否則點擊cell之后 數(shù)據(jù)源都是消失,答案在爆棧上扎到http://stackoverflow.com/questions/14798516/uitableview-custom-cells-disappearing-content-after-scrolling

添加controller

scroller view滾動,如何讓藍條跟著滾動

animation Bar

1. animationbar前面講到了,是放在第一個button下面的一個UIView

2. 要讓它隨著scroll 一起滾動,其實目的就是為了改變它的frame;這里有一個比例關(guān)系,channelscrllview的一個寬度是scrollerview的寬度,以為藍條這個animation只是在my channel和all channel之間切換,也就是說移動的中心是my channel的中心到all channel的中心之間,也就是100;所以有了上面的一個比例關(guān)系

3. 為什么要偏移40,是因為這個animationview的起點是中心靠左位置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,257評論 4 61
  • 文/訞貓 “嘿,有男朋友了嗎?” “沒有?。 ?“什么,大學(xué)都快畢業(yè)了還沒有男朋友!” “是啊,沒人看上我哎!” ...
    月見明閱讀 1,276評論 4 4
  • 訂咖啡App 在Android Studio 中 可以通過ctrl + alt + L 格式化代碼格式 認識活動—...
    Clixin閱讀 322評論 0 0
  • 晚飯后,時針還不到9點,閑來無事便打開微信與家里的祖母視頻。 我知道祖母愛念叨,如果長時間沒有聯(lián)系了,便會心心念,...
    女公子99閱讀 350評論 0 5
  • 01. 說起來很慚愧,大概有一年的時間我都沒有更新。 與我相熟的人大概知道,其實不光是公眾號,我的微博、朋友圈,甚...
    顏夕遙閱讀 1,107評論 5 9

友情鏈接更多精彩內(nèi)容