结构:控制器view + scrollview + tableview
要点:要想实现cell穿透效果
1.tableview要占据整个屏幕,前提是要取消控制器对象的自动调整属性,然后重新设置对应tableview的frame
self.automaticallyAdjustsScrollViewInsets = NO;
tableView.frame = CGRectMake(i * scrollViewW, 0, scrollViewW, scrollViewH);
2.设置tableview的内边距:上边距和下边距
self.tableView.contentInset = UIEdgeInsetsMake(64 + x, 0, 49, 0);
注意:xcode7-8.3.3 ios7-ios10 这样设置是没有问题的
但是更新为xcode9,对应ios11,在模拟器上运行,对于tableview被导航栏和tabbar挡住,会自动向下设置64,向上设置49的内边距,设置应该改为
self.tableView.contentInset = UIEdgeInsetsMake(x, 0, 0, 0);
问题:
如果按照之前的思路,虽然在ios11上运行,依然可以正常显示,但是ios11上却出现了这样的问题,与ios11定的一个安全区域规则有关系,以后再深入分析探讨