UITableView自定義系統(tǒng)左滑Cell菜單
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
? ? if (editingStyle == UITableViewCellEditingStyleDelete) {
? ? }
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
? ? return UITableViewCellEditingStyleDelete;
}
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
? ? return @"標(biāo)記為\n已回訪";
}
// 設(shè)置顯示多個按鈕
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
? ? UITableViewRowAction * deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"屏蔽用戶" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
? ? }];
? ? deleteRowAction.backgroundColor = [UIColor redColor];
? ? UITableViewRowAction * topRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"取消關(guān)注" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
? ? }];
? ? topRowAction.backgroundColor = [UIColor blueColor];
? ? return @[deleteRowAction,topRowAction];
}
在cell中自定義樣式
- (void)layoutSubviews
{
? ? [super layoutSubviews];
? ?
? ? // 去掉隱式動畫
? ? [CATransaction begin];
? ? [CATransaction setDisableActions:YES];
? ? [self setupSlideBtn];
? ? [CATransaction commit];
}
// 設(shè)置左滑菜單按鈕的樣式
- (void)setupSlideBtn
{
? ? for (UIView *subView in self.subviews) {
? ? ? ? if([subView isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")]) {
? ? ? ? ? ?
? ? ? ? ? ? // 屏蔽用戶
? ? ? ? ? ? UIView *smsContentView = subView.subviews[0];
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ? for (UIView *smsView in smsContentView.subviews) {
? ? ? ? ? ? ? ? [smsView removeAllSubviews];
? ? ? ? ? ? }
? ? ? ? ? ?
? ? ? ? ? ? UIImageView *smsImage = [[UIImageView alloc] init];
? ? ? ? ? ? smsImage.image = [UIImage imageNamed:@"UserView_follow2"];
? ? ? ? ? ? smsImage.frame = smsContentView.bounds;
? ? ? ? ? ? [smsContentView addSubview:smsImage];
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ? // 取消關(guān)注
? ? ? ? ? ? UIView *messageContentView = subView.subviews[1];
? ? ? ? ? ?
? ? ? ? ? ? for (UIView *messageView in messageContentView.subviews) {
? ? ? ? ? ? ? ? [messageView removeAllSubviews];
? ? ? ? ? ? }
? ? ? ? ? ?
? ? ? ? ? ? UIImageView *messageImage = [[UIImageView alloc] init];
? ? ? ? ? ? messageImage.image = [UIImage imageNamed:@"UserView_follow1"];
? ? ? ? ? ? messageImage.frame = messageContentView.bounds;
? ? ? ? ? ? [messageContentView addSubview:messageImage];
? ? ? ? ? ?
? ? ? ? }
? ? }
}
使用panCell自定義左滑菜單
1夸楣、創(chuàng)建 cell 繼承 PanTableViewCell?
2鸭蛙、添加PanTableViewCellDelegate協(xié)議方法
3、實現(xiàn)協(xié)議方法
#import "PanCellButton.h"
- (NSArray<PanCellButton *> *)panTableViewCell:(PanTableViewCell *)cell tableView:(UITableView *)tableView rightPanCellButtonsAtIndexPath:(NSIndexPath *)indexPath{
? ?
? ? PanCellButton *removeFollowUserButton = [[PanCellButton alloc] initWithTitle:nil image:[UIImage imageNamed:@"UserView_follow1"] onClickCallback:^(UIButton *panButton) {
? ? ? ? [self CancelFollowAction];
? ? }];
? ?
? ? PanCellButton *hiddenUserButton = [[PanCellButton alloc] initWithTitle:nil image:[UIImage imageNamed:@"UserView_follow2"] onClickCallback:^(UIButton *panButton) {
? ? ? ? [self ShieldingUser];
? ? }];
? ?
? ? return @[hiddenUserButton,removeFollowUserButton];
}
效果圖
下載使用
https://github.com/githubze/panCell