前言:本文僅提供自己遇到的問題的一些解決方案危队,想了解更多api的變化可自行搜索聪建。
1.UITableView 分組高度顯示異常處理方案
UITableView分組高度默認(rèn)增加22個(gè)像素的高度,導(dǎo)致所有的UI顯示異常茫陆。
解決方案:
- 全局設(shè)置
(推薦)
可以在AppDelegate
中直接全局設(shè)置生效金麸,目前未發(fā)現(xiàn)不良影響
if (@available(iOS 15.0, *)) {
[UITableView appearance].sectionHeaderTopPadding = 0;
}
- 部分頁(yè)面設(shè)置
針對(duì)單獨(dú)某個(gè)UITableView設(shè)置
if (@available(iOS 15.0, *)) {
_tableView.sectionHeaderTopPadding = 0;
}
- Runtime方式(僅提供方案,未驗(yàn)證)
創(chuàng)建UITableView的分類盅弛,在+ (void)load
方法中交換initWithFrame:
钱骂,并增加如下代碼
if (@available(iOS 15.0, *)) {
_tableView.sectionHeaderTopPadding = 0;
}
2.導(dǎo)航欄顯示異常處理方案
iOS15之前的系統(tǒng)叔锐,用到了設(shè)置導(dǎo)航欄背景顏色的處理挪鹏,或設(shè)置某種顏色或透明或顏色變化见秽,但是在iOS15上全部失效,導(dǎo)致導(dǎo)航欄顯示異常讨盒。
解決方案:
創(chuàng)建UINavigationController
分類解取,增加如下方法:
/// 設(shè)置導(dǎo)航欄顏色
-(void)setNavigationBackgroundColor:(UIColor *)color{
NSDictionary *dic = @{NSForegroundColorAttributeName : [UIColor whiteColor],
NSFontAttributeName : [UIFont systemFontOfSize:18]};
if (@available(iOS 15.0, *)) {
// 滾動(dòng)狀態(tài)
UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];
// 設(shè)置為不透明
appearance.backgroundEffect = nil;
appearance.backgroundImage = [UIImage imageWithColor:color];
appearance.shadowColor = color;
appearance.backgroundColor = color;
// 靜止?fàn)顟B(tài)
UINavigationBarAppearance *appearance2 = [[UINavigationBarAppearance alloc] init];
// 設(shè)置為不透明
appearance2.backgroundEffect = nil;
appearance2.backgroundImage = [UIImage imageWithColor:color];
appearance2.shadowColor = color;
appearance2.backgroundColor = color;
self.navigationBar.scrollEdgeAppearance = appearance;
self.navigationBar.standardAppearance = appearance2;
}else{
self.navigationBar.titleTextAttributes = dic;
[self.navigationBar setShadowImage:[[UIImage alloc] init]];
[self.navigationBar setBackgroundImage:[UIImage imageWithColor:color] forBarMetrics:UIBarMetricsDefault];
}
}
將原來(lái)iOS15之前的如下代碼:
UIImage *image = [UIImage imageWithColor:color];
[self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:image];
修改為:
[self.navigationController setNavigationBackgroundColor:color];
其中color
為當(dāng)前導(dǎo)航欄的顏色,可根據(jù)項(xiàng)目實(shí)際情況設(shè)置顏色
3.為ProMotion設(shè)備配置高刷權(quán)限
iPhone 13 Pro返顺、iPhone 13 Pro Max 和 iPad ProMotion 顯示器能夠在以下各項(xiàng)之間動(dòng)態(tài)切換:
刷新率高達(dá) 120Hz禀苦,低至 24Hz 或 10Hz 的較慢刷新率。
目前在iPhone 13 Pro 或 iPhone 13 Pro Max 上非官方APP默認(rèn)不支持120Hz刷新率遂鹊,其實(shí)只需要在Plist上配置以下權(quán)限振乏,就可以使用上高刷,而Pad Pro 不需要這種特殊配置秉扑,默認(rèn)支持高刷慧邮。
<key>CADisableMinimumFrameDurationOnPhone</key><true/>