今天愚人节,小伙们,愚人节快乐!
实现一个小功能,滑动菜单,显示隐藏的功能菜单, 先上图:
这里尝试用了下使用三个方式来实现了这个功能:
1、使用自定义UITableViewCell + UISwipeGestureRecognizer + 代理 实现;
2、使用自定义UITableViewCell + UIPanGestureRecognizer + 代理 实现;
3、使用自定义UITableViewCell + UISwipeGestureRecognizer + block 实现。
注意点: 使用UIPanGestureRecognizer手势实现左滑的时候,由于拖拽手势的方向随意性,导致与UITableViewController的下拉刷新手势冲突了!
感觉还是用UISwipeGestureRecognizer清扫手势实现好点!
部分代码:
1、使用UISwipeGestureRecognizer + Delegate
自定义UITableViewCell部分代码:
1 // 2 // TanTableViewCell.h 3 // Tan_SwipeTableViewCell 4 // 5 // Created by PX_Mac on 16/3/25. 6 // Copyright © 2016年 PX_Mac. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 @class MemberModel; 11 @class TanTableViewCell; 12 13 @protocol TanTableViewCellDelegate <NSObject> 14 15 @optional 16 - (void)deleteMember: (TanTableViewCell *)cell; //协议方法:删除会员 17 - (void)closeOtherCellLeftSwipe; //关闭其他单元格的左滑 18 19 @end 20 21 @interface TanTableViewCell : UITableViewCell 22 23 //静态构造方法 24 + (instancetype)cellWithTableView: (UITableView *)tableView; 25 26 @property (nonatomic, strong) MemberModel *model; //模型属性 27 @property (nonatomic, weak) id<TanTableViewCellDelegate> delegate; //代理 28 29 - (void)setData: (MemberModel *)model; //设置要显示的数据 30 - (void)closeSwipe; //关闭滑动,恢复原样(用于在滑动当前单元格时,把其他已经左滑的单元格关闭) 31 32 @end