借鑒于作者:http://www.reibang.com/p/3a9ad4f0fa32?appinstall=0
>使用:
在你的pch中疾党,宏定義寬高,和高度系數(shù)暴心、寬度系數(shù)(這里會有人覺得姐浮,寬度系數(shù)?是的超歌,經(jīng)歷了iphoneX以后砍艾,我們都該有所覺悟,如果哪天蘋果的屏幕寬度發(fā)生了變化巍举,我們也要去一點點地修改項目中的 ?寬度 ?嗎脆荷?)、到頂部和底部的安全距離懊悯。
- 1.?
????#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
????#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
配合美工標(biāo)注圖使用:
????高度系數(shù):(821x? ? 667 8和6)
????#define HeightCoefficient (SCREEN_HEIGHT == 812.0 ? 667.0/667.0 : ? SCREEN_HEIGHT/667.0)
????寬度系數(shù):(821x 667 8和6)
????#define WidthCoefficient (SCREEN_WIDTH == 375.0 ? 375.0/375.0 : SCREEN_WIDTH/375.0)
- 2.安全距離
????頂部高度
????#define SafeAreaTopHeight (SCREEN_HEIGHT == 812.0 ? 88 : 64)
????底部高度(底部高度適配:列表類不減安全距離,底部有按鈕的減)
? ? #define SafeAreaBottomHeight (SCREEN_HEIGHT == 812.0 ? 34 : 0)
? ? 例:
有兩種情況蜓谋,到目前倒是沒具體標(biāo)準(zhǔn),但是根據(jù)蘋果自己的樣式炭分,有列表的頁面桃焕,下邊的安全距離不會減去,底部有按鈕的頁面底部安全距離減去欠窒。(注意底部安全距離部分是有手勢的覆旭。如果公司沒有測試機,可以去附近體驗店岖妄,先玩玩型将,了解下吧。??)
?不減底部安全距離:
? ?? _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, SafeAreaTopHeight, SCREEN_WIDTH, SCREEN_HEIGHT - SafeAreaTopHeight) style:UITableViewStylePlain];
減去底部安全距離:
? ? _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, SafeAreaTopHeight, SCREEN_WIDTH, SCREEN_HEIGHT - SafeAreaTopHeight - SafeAreaBottomHeight) style:UITableViewStylePlain];
- 3. ios11下?controller.automaticallyAdjustsScrollViewInsets = NO無效問題:
????//如果導(dǎo)航隱藏 ios11 下方法controller.automaticallyAdjustsScrollViewInsets = NO; 無效的處理:
在pch中荐虐,宏定義下面方法七兜;
????/// 第一個參數(shù)是當(dāng)下的控制器適配iOS11 一下的,第二個參數(shù)表示scrollview或子類
????#define AdjustsScrollViewInsetNever(controller,view) if(@available(iOS 11.0, *)) {view.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;} else if([controller isKindOfClass:[UIViewController class]]) {controller.automaticallyAdjustsScrollViewInsets = NO;}
例:
? ? 在需要使用的控制器中福扬,AdjustsScrollViewInsetNever(self, _tableView);
- 4.cell的高度自計算問題:
????//cell刪除方法據(jù)說有添加新的方法沒試過
????//cell分組 組頭/組尾部高度問題(我的項目實測,沒發(fā)現(xiàn)高度有問題)腕铸,如果你的有問題惜犀,可以進(jìn)行如下嘗試:
????/// 自動關(guān)閉估算高度
????self.tableView.estimatedRowHeight = 0;
????self.tableView.estimatedSectionHeaderHeight = 0;
????self.tableView.estimatedSectionFooterHeight = 0;