IOS开发,tableView点击cell,具备三级或者更多层级的开发
在IOS开发中,很多时候项目需求会有点击某一行,展开cell下面的cell,在此点击会收起;
目前创新互联公司已为上千家的企业提供了网站建设、域名、虚拟空间、网站托管、服务器租用、企业网站设计、成华网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
这种实现方式很多,个人这里随便推荐一种实现方式:
1、在数据转模型的model里面添加一个属性, @property ( assign , nonatomic ) BOOL isOpen; //是否展开
2、在对应的tableView层,- ( nullable UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section;方法下面生成View,并未其添加点击事件;点击事件方法如下:
在对应的tableView的dataSource方法中:
以及- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{ if ( self .dataList[indexPath.section].isOpen) {
if ( self .dataList[indexPath.section].isOpen) {
//设置展开的cell
}else{
//设置没有展开的cell;
}}
实现的方法和tableBView差不多,实现他的几个代理方法:
解释一下:传进来的item:代表他给你的model,根据这个model可以去获取上级model: clickpackagesModel*packageModel = [treeViewparentForItem:model];
同样可以根据model获取相应的cell: clickPackageCell*packagecell01 = (clickPackageCell*)[treeViewcellForItem:model];
有了上面两个方法,基本就能玩转三级展开和收起;
对于三级展开,大家还有什么好的想法亦或者好的框架没?欢迎补充
【iOS开发工程化——开发中】:三层架构,MVC、MVVM
上一篇我们说到组件化开发是一个App最大一层的架构,那具体到了一个一个的业务组件里,比组件化开发小一点的架构就是三层架构。所谓三层架构就是指把项目中所有的类划分到不同的层,目的是使项目逻辑更加清晰,提升开发和维护的效率,我们一般会把项目分为三层:数据层、业务层、视图层。
注意:严格来讲,三层架构并不真正就比组件化开发小,它们俩只是从不同的角度去做架构而已,往往是相互融合的,比如组件化开发里网络库就是三层架构里数据层的内容,UI库就是三层架构里视图层里的内容等,这里之所以说“三层架构是比组件化开发小一点的架构,主要是针对业务组件来说的”,当然甚至我们在不使用组件化开发时项目里依然可以使用三层架构。
比三层架构再小一点的架构就是视图层架构,我们常说的MVC、MVVM都是˛视图层的架构。
MVC,即Model-View-Controller,它们的关系如下:
MVVM,即Model-View-ViewModel,它们的关系如下:
iOS开发 两层tableview嵌套滚动的实现逻辑
Github Demo 地址
让内层的tableView滑动手势可以传出去,这时候需要一个继承UITableView,以下是 GestureTableView.swift 文件
内层防止左右滚动的时候可以上下滚动
标题名称:ios开发层,ios面向开发者
分享URL:http://scyingshan.cn/article/dsespip.html