Skip to main content

既存アプリのiOS15とXcode13対応

毎年恒例ですがiOS15対応しました
以下、やったこと


・ナビゲーションバーに色が設定されない
以下を追加する
standardAppearanceは通常のナビバー
scrollEdgeAppearanceはラージタイトルのナビバー

if #available(iOS 15.0, *) {
    let appearance = UINavigationBarAppearance()
    appearance.backgroundColor = UIColor.white
    appearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
    UINavigationBar.appearance().scrollEdgeAppearance = appearance
    UINavigationBar.appearance().standardAppearance = appearance
}

https://zenn.dev/ariiyu/scraps/0e309cc095cd3f
https://re-engines.com/2020/08/17/ios14%E3%82%92%E6%8E%A7%E3%81%88%E3%81%9F%E4%BB%8A%E3%81%93%E3%81%9Duinavigationbarappearance/

 

・TableViewのSectionヘッダーに余白がある

if #available(iOS 15.0, *) {
    UITableView.appearance().sectionHeaderTopPadding = 0.0
}

https://stackoverflow.com/questions/68155090/extra-padding-above-table-view-headers-in-ios-15

 

・TableViewのSectionヘッダーに色を設定する
Sectionヘッダーに色が当たらなくなったので当てる

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
    UIColor *backgroundColor = [UIColor colorNamed: @"SectionGray"]; //[UIColor redColor];
    view.tintColor = backgroundColor;
    view.backgroundColor = backgroundColor;
    header.textLabel.textColor = [UIColor blackColor];
    header.contentView.tintColor = backgroundColor;
    header.contentView.backgroundColor = backgroundColor;
}

https://stackoverflow.com/questions/70196865/ios15-uitableview-section-label-font-size-and-color-was-change
https://stackoverflow.com/questions/8742493/what-is-the-default-tableview-section-header-background-color-on-the-iphone

 

・SPM対応
基本的には移行するだけなんだけど
CrashlyticsのRunスクリプトのパスは変える必要がるので注意
https://firebase.google.com/docs/ios/installation-methods

 

これで一応動くようになったはず

関連記事:

Pocket