iOS 导航栏更喜欢大标题滚动行为
iOS Navigation Bar Prefers Large Titles Scroll Behaviour
在iOS11中,如果启用prefersLargeTitles:
,系统应用程序都会在您向下滚动时压缩导航栏
虽然我不知道如何在我自己的应用程序中实现它,但默认情况下该栏保持不变:
我唯一能看到的是滑动时隐藏栏,但它隐藏了整个栏而不是压缩它:
这只是在 Xcode 9 beta 中创建的一个空项目,并添加了一个新的故事板。
我需要做什么才能获得与系统应用相同的行为?
不要在 Interface Builder / Storyboard 中设置有关大标题的任何内容,仅在代码中。这对我有用。
所以在 Storyboards 的导航栏中,未选中 Prefers Large Titles。
在您的视图控制器中:
self.navigationController?.navigationBar.prefersLargeTitles = true
如果您必须针对较旧的 iOS 版本,您还必须将分配包装在可用性检查中:
if #available(iOS 11, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
}
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationBar.topItem?.title = "Hello"
navigationController?.navigationItem.largeTitleDisplayMode = .automatic
let attributes = [
NSAttributedStringKey.foregroundColor : UIColor.red,
]
navigationController?.navigationBar.largeTitleTextAttributes = attributes
} else {
// Fallback on earlier versions
}
http://iosrevisited.blogspot.in/2017/09/navigation-bar-with-large-titles-and.html
这个问题似乎是出于不同的原因而发生在人们身上的。 None 以上答案对我有帮助,但这是 DID 起作用的...
我解构了我的应用程序以找到原因,这是情节提要中的视图层次结构。 UITableView
视图似乎是视图控制器中的第一个视图。我有一个 UITableView
后面有两个 UIImageView
,这就是导致问题的原因。一旦我删除了那些 UIImageView
s 一切正常。
我的解决方法:我最终在代码中创建了一个 UIView
,将我的两个图像视图添加到其中,然后将 UIView
添加到 UITableview.backgroundView
。
希望这对某人有所帮助。
在iOS11中,如果启用prefersLargeTitles:
,系统应用程序都会在您向下滚动时压缩导航栏虽然我不知道如何在我自己的应用程序中实现它,但默认情况下该栏保持不变:
我唯一能看到的是滑动时隐藏栏,但它隐藏了整个栏而不是压缩它:
这只是在 Xcode 9 beta 中创建的一个空项目,并添加了一个新的故事板。
我需要做什么才能获得与系统应用相同的行为?
不要在 Interface Builder / Storyboard 中设置有关大标题的任何内容,仅在代码中。这对我有用。
所以在 Storyboards 的导航栏中,未选中 Prefers Large Titles。
在您的视图控制器中:
self.navigationController?.navigationBar.prefersLargeTitles = true
如果您必须针对较旧的 iOS 版本,您还必须将分配包装在可用性检查中:
if #available(iOS 11, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
}
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationBar.topItem?.title = "Hello"
navigationController?.navigationItem.largeTitleDisplayMode = .automatic
let attributes = [
NSAttributedStringKey.foregroundColor : UIColor.red,
]
navigationController?.navigationBar.largeTitleTextAttributes = attributes
} else {
// Fallback on earlier versions
}
http://iosrevisited.blogspot.in/2017/09/navigation-bar-with-large-titles-and.html
这个问题似乎是出于不同的原因而发生在人们身上的。 None 以上答案对我有帮助,但这是 DID 起作用的...
我解构了我的应用程序以找到原因,这是情节提要中的视图层次结构。 UITableView
视图似乎是视图控制器中的第一个视图。我有一个 UITableView
后面有两个 UIImageView
,这就是导致问题的原因。一旦我删除了那些 UIImageView
s 一切正常。
我的解决方法:我最终在代码中创建了一个 UIView
,将我的两个图像视图添加到其中,然后将 UIView
添加到 UITableview.backgroundView
。
希望这对某人有所帮助。