最近升级手机系统以后,发现左滑编辑手势失效,于是找到SWTableViewCell框架的问题.
网上找了一些,发现不适用,于是自己做了修改,只对SWTableViewCell.m文件进行了修改.
由于iOS 14之后 tableviewcell在初始化方法时,其subViews内容为空,致使cell的contentView没加到自定义的contentView上,于是修改如下:
1. 首先定义一个宏 #define kCotentCellViewTag 54644 (数字可以随意)
在创建 _contentCellView时给tag设定定义好的宏kCotentCellViewTag;
_contentCellView.tag = kCotentCellViewTag;
2. 接着实现递归方法如下:
//遍历cell的子视图找到contentView,并确保在scrollView上面
- (void)getSub:(UIView*)viewandLevel:(int)level {
NSArray*subviews = [viewsubviews];
// 如果没有子视图就直接返回
if([subviewscount] ==0)return;
for(UIView*subviewinsubviews) {
if(subview.tag==kCotentCellViewTag) {
for(intj =0; j<self.subviews.count; j++) {
UIView*tempView =self.subviews[j];
if([NSStringFromClass([tempViewclass])isEqualToString:kTableViewCellContentView]) {
[tempViewremoveFromSuperview];
[subviewaddSubview:tempView];
return;
}
}
}
// 递归获取此视图的子视图
[selfgetSub:subviewandLevel:(level+1)];
}
}
3. 最后在layoutSubviews方法最后布局以后,对cell中subViews的contentView进行重排,调用第二步方法如下:
[self getSub:self andLevel:1];
完结.