iOS仿QQ左滑多个按钮

作者: pantaopt | 来源:发表于2016-07-29 13:47 被阅读819次

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

    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下载地址 

    相关文章

      网友评论

      • zackzheng:楼主,其实用UITableView的editActionsForRowAtIndexPath就可以了。
        pantaopt:@zackzheng 你说的这个真没见过 然后我去百度了 确实可以 受教了 这个可以自定各个按钮的宽度吗

      本文标题:iOS仿QQ左滑多个按钮

      本文链接:https://www.haomeiwen.com/subject/lzsojttx.html