1.tableview section头部不悬停
正常section
不为0的时候,section
的headerView
会悬停在当前视图中,如QQ
解决办法
#pragma mark -- 头部悬停
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat sectionHeaderHeight = kViewHeightScaleOf6s(97);
if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y >= 0) {
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
} else if (scrollView.contentOffset.y >= sectionHeaderHeight) {
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
2.tableView系统选中方法
self.tableview.allowsMultipleSelectionDuringEditing = YES;
self.tableview.editing = YES;
3.mj上拉加载重复加载问题
UIScrollView (MJRefresh)
- (void)setMj_footer:(MJRefreshFooter *)mj_footer
{
if (mj_footer != self.mj_footer) {
// 删除旧的,添加新的
[self.mj_footer removeFromSuperview];
[self insertSubview:mj_footer atIndex:0];
// ios11 适配 关闭self-sizing
if ([self isKindOfClass:[UITableView class]]) {
UITableView *view = (UITableView *)self;
view.estimatedRowHeight = 0;
view.estimatedSectionHeaderHeight = 0;
view.estimatedSectionFooterHeight = 0;
}
// 存储新的
[self willChangeValueForKey:@"mj_footer"]; // KVO
objc_setAssociatedObject(self, &MJRefreshFooterKey,
mj_footer, OBJC_ASSOCIATION_ASSIGN);
[self didChangeValueForKey:@"mj_footer"]; // KVO
}
}
4.ios11 用到tableview headerview 的时候需要用到下面的预估代码, 不用的话会出错
if (@available(iOS 11.0,*)) {
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
//解决iOS11,仅实现heightForHeaderInSection,没有实现viewForHeaderInSection方法时,section间距大的问题
[UITableView appearance].estimatedRowHeight = 0;
[UITableView appearance].estimatedSectionHeaderHeight = 0;
[UITableView appearance].estimatedSectionFooterHeight = 0;
}else{
self.automaticallyAdjustsScrollViewInsets = NO;
}
5.iphone_X适配:
// 判断是否是iPhone X
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
// 导航栏高度
#define KNAVIGATION_BAR_HEIGHT (iPhoneX ? 88.f : 64.f)
// 状态栏高度
#define KSTATUS_BAR_HEIGHT (iPhoneX ? 44.f : 20.f)
// tabBar高度
#define KTAB_BAR_HEIGHT (iPhoneX ? (83.f) : 49.f)
// 底部的高度
#define KBOTTOM_HEIGHT (iPhoneX ? 34.f : 0.f)
网友评论