可以水平捲動的UITableViewCell。本篇文章並非給初學者享用,但會說明所有關鍵的地方,請自己補上程式碼。
軟體版本:iOS 8.2+,Xcode 6+。
最近為了這個功能有點頭痛,可是默默的做出來後,發現也不是說非常的複雜,主要的功能是說,有些row的內容會比較多,所以必須呈現一個以上的cell(此cell的客製的,之後講到的cell全都是指客製化的cell,有自己的nib和.h.m檔案),所以這樣的可捲動cell裡面必須裝一個scroll view去裝這些cell,實作起來略有點複雜。
首先,我們會有三個物件:
registerNib: forCellReuseIdentifier:
也可以使用registerClass:forCellReuseIdentifier:。
軟體版本:iOS 8.2+,Xcode 6+。
最近為了這個功能有點頭痛,可是默默的做出來後,發現也不是說非常的複雜,主要的功能是說,有些row的內容會比較多,所以必須呈現一個以上的cell(此cell的客製的,之後講到的cell全都是指客製化的cell,有自己的nib和.h.m檔案),所以這樣的可捲動cell裡面必須裝一個scroll view去裝這些cell,實作起來略有點複雜。
首先,我們會有三個物件:
- Cell
- ScrollCell:裡面放一個scroll view,用來放Cell,並且有一個委任方法(delegate method)
- ViewController:裡面裝一個table view,此view controller遵守scroll cell的protocol
ScrollCell的實作
ScrollCell的委任方法是什麼呢?這跟ViewController裡面的didSelectRowAtIndexPath:有關。由於didSelectRowAtIndexPath:處理的是點選Cell,但是ScrollCell裡面插入的Cell並不是真正ViewController的tableView接受的cell,所以點選是無效的,因此將ScrollCell內含的Cell點選的邏輯用UITapGestureRecognizer寫,然後處理的邏輯交給ViewController完成。ViewController的實作
他要注意的地方比較多一點:- Table View Delagate方法:
- cellForRowAtIndexPath:cell實作
- didSelectRowAtIndexPath:點選ell後要執行的邏輯
- heightForRowAtIndexPath:每row的cell的高度
- willSelectRowAtIndexPath:處理ScrollCell的效果,讓你點選ScrollCell空白處不會有反應
- Table相關方法:
- initTableView:註冊你的Cell和ScrollCell
- ScollCell委任方法:處理點選ScrollCell內個別Cell的事件
registerNib: forCellReuseIdentifier:
也可以使用registerClass:forCellReuseIdentifier:。
留言
張貼留言