結構:控制器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定的一個安全區域規則有關系,以后再深入分析探討