一. 以UITableViewController為例
iOS 11.0 以下
self.automaticallyAdjustsScrollViewInsets = NO;
iOS 11.0 以上
if ([self.tableView respondsToSelector:@selector(contentInsetAdjustmentBehavior)]) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
二. 導航控制器UINavigationController
導航條上的子控件布局發(fā)生了變化
iOS 11.0 以下
導航條左/右邊的按鈕 直接添加在 UINavigationBar 上
UINavigationBar -> 自定義左/右邊的視圖
導航條的標題欄 添加在 UINavigationItemView 上
UINavigationBar -> UINavigationItemView -> 標題欄
iOS 11.0 以上
導航條自定義左/右邊的視圖層級順序
UINavigationBar -> UINavigationBarContentView -> UIButtonBarStackView -> UITAMICAdaptorView -> UIView -> 自定義左/右邊的視圖
導航條的標題欄 添加在 UINavigationBarContentView 上
UINavigationBar -> UINavigationBarContentView -> 標題欄
三. UINavigationBar 使用變化
iOS 11.0 以下
點擊Bar上的按鈕, 觸發(fā)delegate執(zhí)行
{navigationBar:shouldPushItem:, navigationBar:didPushItem:}
后, 點擊返回按鈕, 無法再觸發(fā)delegate執(zhí)行
{navigationBar: shouldPopItem:, navigationBar:didPopItem:}
同時視圖也不會再回到之前
iOS 11.0 以上
點擊Bar上的按鈕, 觸發(fā)delegate執(zhí)行
{navigationBar:shouldPushItem:, navigationBar:didPushItem:}
后, 點擊返回按鈕, 可以正常觸發(fā)delegate執(zhí)行
{navigationBar: shouldPopItem:, navigationBar:didPopItem:}
同時視圖會回到之前