Han*_*hel 56 iphone uinavigationbar ios ios11 xcode9-beta
iOS 11 Beta 1几乎为所有系统应用程序使用增加的导航栏标题(它开始在iOS 10和音乐应用程序中执行此操作).我想知道Apple是否有iOS 11的公共API,或者它现在是否会保密.
行为是标题具有增加的字体大小,左对齐并且一旦用户向下滚动就会移动到导航栏.我在这里的消息应用程序中附加了一些显示此行为的屏幕.
虽然我无法找到任何的参考UINavigationController和UINavigationBar到目前为止,也许有人知道一些细节!
Moi*_*azi 108
UINavigationBar对iOS 11的API进行的唯一更改prefersLargetitles仅是.检查一下
您可以通过一个小的更改对自己的应用程序执行此操作:在IB中为导航栏选中"首选大标题",或者如果您希望在代码中使用
navigationController?.navigationBar.prefersLargeTitles = true
Run Code Online (Sandbox Code Playgroud)
编辑
如果您需要更改大标题的文本属性,则需要使用以下新largeTitleTextAttributes属性UINavigationBar:
UINavigationBar.appearance().largeTitleTextAttributes = [
NSForegroundColorAttributeName: UIColor.white
]
Run Code Online (Sandbox Code Playgroud)
由于NSForegroundColorAttributeName已更名为NSAttributedString.Key.foregroundColor,使用:
UINavigationBar.appearance().largeTitleTextAttributes = [
NSAttributedString.Key.foregroundColor: UIColor.black
]
Run Code Online (Sandbox Code Playgroud)
kga*_*dis 10
UINavigationBar有prefersLargeTitles: Bool房产.文档在这里.
class UINavigationBar {
var prefersLargeTitles: Bool
}
Run Code Online (Sandbox Code Playgroud)
UINavigationItem有largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode房产.文档在这里.
class UINavigationItem {
var largeTitleDisplayMode: LargeTitleDisplayMode
}
Run Code Online (Sandbox Code Playgroud)
这两个都可以在Interface Builder中修改.
要启用此行为设置navigationController.navigationBar.prefersLargeTitles为true.然后,您可以通过设置控制导航控制器堆栈中的每个单独的视图控制器navigationItem.largeTitleDisplayMode.
Apple的一般设计指南是不应该在任何地方使用大型标题(例如,Clock应用程序不使用它们),并且通常优选的是只有导航控制器的第一级使用大标题.但是,这些只是一般指导原则.
Cocoa Touch视频中的新内容(7:37)中介绍了大型标题.
if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
} else {
// Fallback on earlier versions
}
Run Code Online (Sandbox Code Playgroud)
请注意,测试版1中存在一些错误,导致只有在手动向上滚动时才会显示大标题.
小智 6
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54172 次 |
| 最近记录: |