继昨天适配iOS11修改部分问题后,发现其实很多页面都用了UITableView,这个肯定不能每个页面都一个个的修改,于是决定写一个BaseUITableView,然后把目前用到UITableView的地方都换为BaseUITableView,代码如下:
- (instancetype)init
{
if (self = [super init])
{
[self dismissSomePropertyForiOS11];
}
return self;
}
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
[self dismissSomePropertyForiOS11];
}
return self;
}
- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
{
if (self = [super initWithFrame:frame style:style])
{
[self dismissSomePropertyForiOS11];
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder])
{
[self dismissSomePropertyForiOS11];
}
return self;
}
- (void)dismissSomePropertyForiOS11
{
//如果iOS的系统是11.0,会有这样一个宏定义“#define __IPHONE_11_0 110000”;如果系统版本低于11.0则没有这个宏定义
#ifdef __IPHONE_11_0
if ([self respondsToSelector:@selector(setContentInsetAdjustmentBehavior:)])
{
self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
#endif
self.estimatedRowHeight = 0;
self.estimatedSectionHeaderHeight = 0;
self.estimatedSectionFooterHeight = 0;
}
然后在调用的地方都替换为:
UITableView *tableView = [[BaseUITableView alloc] init];
或者
_taskTabelView = [[BaseUITableView alloc]initWithFrame:CGRectMake(0,0, DEVICE_WIDTH, DEVICE_HEIGHT) style:UITableViewStyleGrouped];
最后在
PrefixHeader.pch
文件加上:
#import "BaseUITableView.h"
完成。