ios開發(fā)層,ios面向開發(fā)者

IOS開發(fā),tableView點(diǎn)擊cell,具備三級(jí)或者更多層級(jí)的開發(fā)

在IOS開發(fā)中,很多時(shí)候項(xiàng)目需求會(huì)有點(diǎn)擊某一行,展開cell下面的cell,在此點(diǎn)擊會(huì)收起;

目前創(chuàng)新互聯(lián)公司已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、成華網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

這種實(shí)現(xiàn)方式很多,個(gè)人這里隨便推薦一種實(shí)現(xiàn)方式:

1、在數(shù)據(jù)轉(zhuǎn)模型的model里面添加一個(gè)屬性, @property ( assign , nonatomic ) BOOL isOpen; //是否展開

2、在對(duì)應(yīng)的tableView層,- ( nullable UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section;方法下面生成View,并未其添加點(diǎn)擊事件;點(diǎn)擊事件方法如下:

在對(duì)應(yīng)的tableView的dataSource方法中:

以及- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{? if ( self .dataList[indexPath.section].isOpen) {

if ( self .dataList[indexPath.section].isOpen) {

//設(shè)置展開的cell

}else{

//設(shè)置沒(méi)有展開的cell;

}}

實(shí)現(xiàn)的方法和tableBView差不多,實(shí)現(xiàn)他的幾個(gè)代理方法:

解釋一下:傳進(jìn)來(lái)的item:代表他給你的model,根據(jù)這個(gè)model可以去獲取上級(jí)model:?clickpackagesModel*packageModel = [treeViewparentForItem:model];

同樣可以根據(jù)model獲取相應(yīng)的cell:?clickPackageCell*packagecell01 = (clickPackageCell*)[treeViewcellForItem:model];

有了上面兩個(gè)方法,基本就能玩轉(zhuǎn)三級(jí)展開和收起;

對(duì)于三級(jí)展開,大家還有什么好的想法亦或者好的框架沒(méi)?歡迎補(bǔ)充

【iOS開發(fā)工程化——開發(fā)中】:三層架構(gòu),MVC、MVVM

上一篇我們說(shuō)到組件化開發(fā)是一個(gè)App最大一層的架構(gòu),那具體到了一個(gè)一個(gè)的業(yè)務(wù)組件里,比組件化開發(fā)小一點(diǎn)的架構(gòu)就是三層架構(gòu)。所謂三層架構(gòu)就是指把項(xiàng)目中所有的類劃分到不同的層,目的是使項(xiàng)目邏輯更加清晰,提升開發(fā)和維護(hù)的效率,我們一般會(huì)把項(xiàng)目分為三層:數(shù)據(jù)層、業(yè)務(wù)層、視圖層。

注意:嚴(yán)格來(lái)講,三層架構(gòu)并不真正就比組件化開發(fā)小,它們倆只是從不同的角度去做架構(gòu)而已,往往是相互融合的,比如組件化開發(fā)里網(wǎng)絡(luò)庫(kù)就是三層架構(gòu)里數(shù)據(jù)層的內(nèi)容,UI庫(kù)就是三層架構(gòu)里視圖層里的內(nèi)容等,這里之所以說(shuō)“三層架構(gòu)是比組件化開發(fā)小一點(diǎn)的架構(gòu),主要是針對(duì)業(yè)務(wù)組件來(lái)說(shuō)的”,當(dāng)然甚至我們?cè)诓皇褂媒M件化開發(fā)時(shí)項(xiàng)目里依然可以使用三層架構(gòu)。

比三層架構(gòu)再小一點(diǎn)的架構(gòu)就是視圖層架構(gòu),我們常說(shuō)的MVC、MVVM都是?視圖層的架構(gòu)。

MVC,即Model-View-Controller,它們的關(guān)系如下:

MVVM,即Model-View-ViewModel,它們的關(guān)系如下:

iOS開發(fā) 兩層tableview嵌套滾動(dòng)的實(shí)現(xiàn)邏輯

Github Demo 地址

讓內(nèi)層的tableView滑動(dòng)手勢(shì)可以傳出去,這時(shí)候需要一個(gè)繼承UITableView,以下是 GestureTableView.swift 文件

內(nèi)層防止左右滾動(dòng)的時(shí)候可以上下滾動(dòng)

文章名稱:ios開發(fā)層,ios面向開發(fā)者
鏈接地址:http://m.kartarina.com/article8/dsespip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)網(wǎng)站建設(shè)定制開發(fā)網(wǎng)站導(dǎo)航靜態(tài)網(wǎng)站全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
主站蜘蛛池模板: 国产精品无码A∨精品影院| 无码精油按摩潮喷在播放| 本道久久综合无码中文字幕| 亚洲av日韩aⅴ无码色老头| 精品无码成人网站久久久久久| 亚洲日韩精品无码一区二区三区 | 国产精品无码专区AV在线播放| HEYZO无码综合国产精品227| 久久精品中文字幕无码绿巨人| 无码人妻精品丰满熟妇区| 亚洲av无码一区二区三区观看| a级毛片无码免费真人久久| 特级小箩利无码毛片| 亚洲日韩激情无码一区| 真人无码作爱免费视频| 亚洲精品无码永久在线观看男男| 久久久久亚洲Av片无码v| 国产午夜无码片免费| 人妻中文字幕AV无码专区| 亚洲色av性色在线观无码| 亚洲av中文无码乱人伦在线播放| 亚洲av永久无码精品古装片| 亚洲人成网亚洲欧洲无码| 日韩精品无码熟人妻视频| 亚洲AV无码成人专区片在线观看| 国产免费久久久久久无码| 特级无码a级毛片特黄| 青春草无码精品视频在线观| 亚洲精品无码国产片| 精品人妻无码区在线视频 | 人妻丰满AV无码久久不卡| 国产激情无码一区二区app| 中文字幕丰满伦子无码 | 亚洲中文字幕无码爆乳AV| 无码专区一va亚洲v专区在线 | 天堂一区人妻无码| 无码AV大香线蕉| 国产精品无码免费专区午夜| 国产免费AV片无码永久免费| mm1313亚洲精品无码又大又粗| 亚洲男人在线无码视频|