swift编程开发iOS DeveloperiOS学习笔记

iOS仿QQ左滑多个按钮

2016-07-29  本文已影响819人  pantaopt

(原创博客,如将转载烦请备注出处)

iOS版本的QQ左滑会出现‘置顶’、‘删除’等多个按钮,产生左划动作cell会向左滑动,在cell已经是出现多个操作按钮的情况下点击或产生右滑动作cell都会复位。

以前我的第一想法和做法是:自定义cell,在cell上放一个scrollview,根据手势来判别相应操作,加上一些动画,可是这样的做法很难达到很和谐,如系统动画那般丝滑。

下面我要给大家介绍PTLestSlideTableView。PTLestSlideTableView是继承了UITableView,并开放出按钮相关配置接口。

直接定义一个成员属性PTLeftSlideTableView *tableView

@property (nonatomic, strong) PTLeftSlideTableView *tableView;

在初始化的时候可以定义好相关属性

- (PTLeftSlideTableView *)tableView{

        if (!_tableView) {

                _tableView = [[PTLeftSlideTableView alloc]initWithFrame:self.view.frame];

                _tableView.PTdelegate = self;

                _tableView.PTdataSource = self;

                _tableView.btnFont = 11.0;

                _tableView.btnWidth = 74.0;

                _tableView.editingArr = @[@"置顶",@"删除"];

                _tableView.editingBgColorArr = @[[UIColor yellowColor],[UIColor redColor]];  

               _tableView.editingTColorArr = @[[UIColor blueColor],[UIColor blackColor]];

}

return _tableView;

}


然后剩下的就跟平时使用uitableview一样了。

接下来来讲讲PTLeftSlideTableView的实现原理。

因为uitableviewcell的编辑操作其实就是cell的左平移,即cell.frame的改变,由此想到了KVO机制。PTLeftSlideTableView正是运用KVO,在cell的frame发生改变时平铺一个view在显现出来的UITableViewCellDeleteConfirmationView上方。

效果如下:

PTLeftSlideTableView下载地址 

上一篇下一篇

猜你喜欢

热点阅读