博客> iOS中的tableView简单使用
iOS中的tableView简单使用
2018-08-13 22:21 评论:0 阅读:200 iOS雯Ping
tableview

tableview是一个以前从来不重视的控件,因为感觉都被封装好了,只要调用方法就可以了,但是用的时候一直会有一些奇奇怪怪得问题,无法达到效果,所以今天决定要将遇到的问题记录下来

最近实现了下饿了么中选餐时两级tableView联动效果,先上效果图,大家感受一下,点此链接可以看到效果:

https://upload-images.jianshu.io/upload_images/2156697-7a76228057f714a1.gif?imageMogr2/auto-orient/

当然,collectionView也是一样的

功能需求(两点):

1.点击左边tableVIew的cell,右边的tableView滑动至指定位置。

2.滑动右边tableView的cell,左边的tableView滑动至指定位置。

首先,你要在 Attributes Inspector 里修改两个地方以便自定义视图。设置 Style 为Custom

, Selection 为None

, Accessory 也为None

,截图如下:

然后,拖两个按钮到 Cell 的 Content View 里。在视图的 Attributes Inspector 区设置每个按钮的背景色为比较鲜艳的颜色,并设置每个按钮的文字颜色为比较易读的颜色,这样你就可以清楚地看到按钮。

将第一个按钮放在右边,和contentView的上下边缘接触。将第二个按钮放在第一个按钮的左边缘处,也和contentView的上下边缘接触。当你做好后,Cell 看起来如下,可能颜色少有差异:

接下来,将每个按钮和对应的 Outlet 关联起来。右键单击到可滑动Cell上打开它的 Outlets,然后将 button1 拖动到到右边的按钮, button2 拖动到左边的按钮,如下

给所有的cell加效果

-(void)tableView:(UITableView )tableView willDisplayCell:(UITableViewCell )cell forRowAtIndexPath:(NSIndexPath *)indexPath{

[self.cellArr addObject:cell];

// NSMutableArray *cellsArr = self.cellArr;

[self.cellArr addObject:cell];

// NSMutableArray *cellsArr = self.cellArr;

Procell.isAnimation = YES;

Procell.deleteItem.hidden = NO;}

}

}

  • (void)tableView:(UITableView )tableView didEndDisplayingCell:(UITableViewCell )cell forRowAtIndexPath:(NSIndexPath*)indexPath{

if (self.isEditing == NO) {

for (productCenterViewCell *Procell in self.cellArr) {

Procell.isAnimation = NO;

Procell.deleteItem.hidden = YES;}}

}

以上两个方法用于记录动画的效果,并不能执行动画,要执行还得有一个入口执行过后就用cell的isAnimation属性执行动画并用以上两个方法呈现cell的状态,所以还要在cell里面重写isAnimation的set方法

我是在cell添加了长按手势为入口

-

-(void)pressGesture:(UILongPressGestureRecognizer*)gesture{

//NSArray *cellsArr = [self.choosePicture visibleCells];

NSMutableArray*cellsArr =self.cellArr;

self.isEditing=YES;

for(companyQualificationCell*cellincellsArr) {

cell.isAnimation=YES;

cell.seleteBut.hidden=NO;}

self.navigationItem.rightBarButtonItem= [[UIBarButtonItemalloc]initWithTitle:@"取消编辑"style:0target:selfaction:@selector(cancelShake)];

}

导航栏右按钮为出口

-(void)cancelShake{

NSArray*cellsArr =self.cellArr;

for(companyQualificationCell*cellincellsArr) {

// [cell.layer removeAllAnimations];

cell.isAnimation=NO;

cell.seleteBut.hidden=YES;

}

self.navigationItem.rightBarButtonItem= [[UIBarButtonItemalloc]initWithImage:

[UIImageimageNamed:@"add"]style:0target:selfaction:@selector(add)]self.isEditing=NO;

}

其实作为一个开发者有一个学习的氛围跟一个交流圈子特别重要,这是我的一个iOS交流群687528266,不管是小白还是大牛都欢迎入驻,大家一起交流成长! )

收藏
0
sina weixin mail 回到顶部