Ios 从大标题页过渡到小标题页时会出现导航间隙
从大标题页滑动到小标题页时出现导航间隙!Ios 从大标题页过渡到小标题页时会出现导航间隙,ios,swift,uinavigationbar,uinavigationcontroller,Ios,Swift,Uinavigationbar,Uinavigationcontroller,从大标题页滑动到小标题页时出现导航间隙! 请确保,您只需选中从情节提要中选择的半透明 输入这样的代码 override func viewWillAppear(_ animated: Bool) { if #available(iOS 11.0, *) { self.navigationController?.navigationBar.prefersLargeTitles = true self.navigationController?.naviga
请确保,您只需选中从情节提要中选择的半透明 输入这样的代码
override func viewWillAppear(_ animated: Bool) {
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationController?.navigationItem.largeTitleDisplayMode = .automatic // Change Display Mode
}else{
// Fallback on earlier versions
}
}
Outout:
视图的布局从导航栏的底部开始。当从大标题页过渡到小标题页时,导航栏变短,然后出现导航间隙 要解决此问题,控制器视图的布局应该从屏幕的零点开始,其子视图的布局应该从导航栏的底部开始,以防被覆盖 两个属性可以影响布局:半透明和edgesForExtendedLayout。 半透明属性应设置为“是”,或在任何地方删除它(默认值为“是”)。 edgesForExtendedLayout属性应设置为UIRectEdgeAll,或在任何地方将其删除(其默认值为UIRectEdgeAll) 对于UITableViewController的页面,它将自动调整到导航栏(tableview的adjustedContentInset将更改,前提是将contentInsetAdjustmentBehavior设置为UIScrollViewContentInsetAdjustmentAutomatic,或删除该设置),任何其他代码都不应更改 对于UIViewController,主视图的子视图应将其布局调整到导航栏的底部。示例代码如下:
-(void)ViewDidLayoutSubView
{
[超级视图布局子视图];
self.searchBgTopLayoutConstraint.constant=正常状态和导航条高度;
#最顶部视图的顶部约束
}
如果子视图的第一个视图(A)继承自UIScrollView,则大标题将根据A的滚动而更改。详情请参阅
如果最上面的视图继承自UIScrollView,如mainTableView,则可以将其布局从零点开始设置,并将其contentInset设置为导航栏的底部。它看起来像一个UITableViewController,当mainsTableView滚动时,导航栏会改变,没有任何空白。示例代码如下:
-(void)ViewDidLayoutSubView
{
[超级视图布局子视图];
self.mainTableView.contentInset=UIEdgeInsetsMake(正常状态和导航条高度,0,0,0);
}