我附加UISearchController到navigationItem.searchControlleriOS上13这个工作得很好:我可以用最好的iOS的13式搜索栏。
但是,我希望默认情况下看到大标题和搜索栏。
我设置navigationItem.hidesSearchBarWhenScrolling = false是因为我想在我的屏幕上永久看到搜索,但默认情况下搜索栏会替换大标题。
有谁知道这怎么可能?
navigationItem.searchController = UISearchController(searchResultsController: nil)
navigationItem.hidesSearchBarWhenScrolling = false
Run Code Online (Sandbox Code Playgroud)
我正在从具有大样式UINavigationItem的视图转换为具有大样式UINavigationItem和视图的视图UISearchController.我已经定制了背景颜色UINavigationBar.
出于某种原因,在UINavigationBar和之间有1px的线或空间UISearchController.我可以告诉它NavigationBar,因为如果我滚动以便搜索栏粘在顶部,那么该线就会消失.我只是不确定是什么产生了这条线.我没有使用阴影,或任何花哨的东西,除了设置barTintColor和tintColor.如果我不使用大型标题,我会看到该行,但仅限于在视图之间转换时.这就像过渡时UISearchController刚刚过去的那样UINavigationBar.
任何帮助确定这条线的来源是值得赞赏的.
更新:在进一步的调查中,似乎只有在navigationItem.hidesSearchBarWhenScrolling设置为时才会发生false.如果它最初是隐藏的,那么前一个视图中的动画是平滑的,并且显示条形也是平滑的.
我有一个视图控制器,我需要在导航栏上显示多行标题。为此,我写了一个这样的协议 -
import UIKit
protocol CustomNavigationBar {
func setupNavigationMultilineTitle(titleText: String, prefersLargeTitles: Bool, largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode)
}
Run Code Online (Sandbox Code Playgroud)
然后扩展它——
extension CustomNavigationBar where Self : UIViewController {
func setupNavigationMultilineTitle(titleText: String, prefersLargeTitles: Bool = true, largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode = .automatic ) {
self.navigationController?.navigationBar.prefersLargeTitles = prefersLargeTitles
self.navigationController?.navigationItem.largeTitleDisplayMode = largeTitleDisplayMode
self.navigationController?.navigationBar.largeTitleTextAttributes = [
NSAttributedString.Key.foregroundColor: UIColor.black,
NSAttributedString.Key.font: UIFont.systemFont(ofSize: 18, weight: .semibold)
]
self.title = titleText
if let navBarSubViews = self.navigationController?.navigationBar.subviews {
for navItem in navBarSubViews {
for itemSubView in navItem.subviews {
if let largeLabel = itemSubView as? UILabel { …Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方法可以更改 iOS 大标题左边距属性。我试图在网上找到它的答案,但我没有成功。
额外问题:项目和屏幕水平边之间的默认边距是 15 吗?我问这个的原因是因为我试图将大标题与我的应用程序的其余元素对齐,屏幕左/右边缘有 15 个。
谢谢 :)
WKWebView中的网页加载完成后,大标题崩溃了,我遇到了问题。这是发生情况的GIF示例。
我在互联网上四处张望,发现有两个帖子可能指向正确的方向:
preferredsLargeTitles-正确显示一秒钟然后折叠-Reddit
我希望大标题显示并在网页加载时保持不变。当用户向上滚动(向下浏览网页)时,大标题应折叠为较小的版本。如果用户返回到网页顶部,则大标题应再次出现。
这是我为WKWebView设置的代码:
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string: "https://www.apple.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
}
Run Code Online (Sandbox Code Playgroud)
朝正确方向的观点将不胜感激!可能与这有关scrollView.contentInsetAdjustmentBehavior吗?
编辑:是-我确定Web视图是Main.storyboard中安全区域之后的第一个视图。
我在堆栈溢出时看到了类似的帖子,但是没有看到任何特定的大型导航栏,当用户向下滚动时会改变大小.
我想要实现的是我的导航栏中的左对齐标题和副标题,当转换为常规导航栏时,它会隐藏或缩小字幕大小.
SO中的其他答案如下所示:(/sf/answers/2968044341/),创建自定义视图,但它们通常对条形图中的移动没有响应.
关于如何正确实现这一点的任何想法?
我正在使用 Brian 的 (LBTA) youtube 演示来创建可滚动的水平菜单栏。
我正在使用collectionView.contentInsetAdjustmentBehavior = .never以避免在调试区域中出现警告。
我只想添加Large titleiOS 11 中引入的内容。
设置navigationController?.navigationBar.prefersLargeTitles = true为启用大标题。它按预期运行良好。
现在,我想在滚动 UIcollectionView(在水平 UICollectionView 内)时将大标题缩小为普通标题。
如何将 scrollView(在 UICollectionView 的滚动中)连接到 NavigationController/NavigationItem 以缩小?
我正在尝试设计具有多行居中大标题文本的视图控制器,就像苹果的 Ask Siri ( Settings->General->Keyboards->About Ask Siri, Dictation and Privacy...) 一样。
我可以使用以下方法实现居中文本:
let paragraph = NSMutableParagraphStyle()
paragraph.alignment = .center
navigationController?.navigationBar.largeTitleTextAttributes = [.paragraphStyle: paragraph]
Run Code Online (Sandbox Code Playgroud)
我确实从情节提要中设置了导航标题,并尝试了这些来实现多行大标题:
但它们都不适用于 iOS 13。
我使用以下代码滚动到 UICollectionView 的顶部:
scrollView.scrollRectToVisible(CGRect(origin: .zero, size: CGSize(width: 1, height: 1)), animated: true)
Run Code Online (Sandbox Code Playgroud)
但是,在 iOS 11 和 12 上,scrollView 仅滚动到顶部,而不会显示UINavigationBar(whenprefersLargeTitle已设置为true.)的大标题。
我想要达到的结果:
在iOS 13更新中,我遇到了一个令人讨厌的错误,当我使用prefersLargeTitles = trueon UINavigationBar并执行推送时,仍然无法解决。另外,即使我不确定100%是否与之相关,我的视图控制器也嵌入了一个集合视图。
无论如何,我正在谈论的错误/故障是:
基本上,文本不会像我推动时所期望的那样具有动画效果,并且会一直保持在那里,直到出现新屏幕为止。有小费吗?谢谢
uinavigationbar ios uicollectionview preferslargetitles ios13
I have a view controller that is pushed onto a navigation stack. The stack has navigationBar.prefersLargeTitles = true, whilst this new view controller has navigationBar.prefersLargeTitles = false. I achieve this using the following code in the view controller that is pushed onto the stack:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.prefersLargeTitles = true
}
Run Code Online (Sandbox Code Playgroud)
However, when I return back to the presenting view controller, the change …
如何在Swift中更改大标题导航栏的字体?
我无法找到涵盖实现带有大标题的导航栏的自定义字体的线程。
我正在尝试使用标题为“ ??????????? W8.ttc”的字体。这似乎已预装在我的Mac上。字体书中的名称是:“ Hiragino Kaku Gothic StdN”。
这是我尝试过的:
self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "???????????-W8", size: 20)!]
Run Code Online (Sandbox Code Playgroud)
和
self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "???????????W8", size: 20)!]
Run Code Online (Sandbox Code Playgroud)
和
self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "Hiragino Kaku Gothic StdN", size: 20)!]
Run Code Online (Sandbox Code Playgroud)
字体文件名使用其他语言还是其他问题?