标签: preferslargetitles

在导航栏中显示搜索栏和大标题也无需在 iOS 13 上滚动

我附加UISearchControllernavigationItem.searchControlleriOS上13这个工作得很好:我可以用最好的iOS的13式搜索栏。

但是,我希望默认情况下看到大标题和搜索栏。

我设置navigationItem.hidesSearchBarWhenScrolling = false是因为我想在我的屏幕上永久看到搜索,但默认情况下搜索栏会替换大标题。

有谁知道这怎么可能?

看一下这个

navigationItem.searchController = UISearchController(searchResultsController: nil)
navigationItem.hidesSearchBarWhenScrolling = false
Run Code Online (Sandbox Code Playgroud)

这是它的实际外观 这是它的实际外观

这就是我需要实现的方式(大标题和搜索栏都可见) 这就是我需要实现的方式(大标题和搜索栏都可见)

uisearchcontroller large-title preferslargetitles ios13

13
推荐指数
1
解决办法
5106
查看次数

在大型标题UINavigationBar中删除UISearchController顶部的1px行

我正在从具有大样式UINavigationItem的视图转换为具有大样式UINavigationItem和视图的视图UISearchController.我已经定制了背景颜色UINavigationBar.

出于某种原因,在UINavigationBar和之间有1px的线或空间UISearchController.我可以告诉它NavigationBar,因为如果我滚动以便搜索栏粘在顶部,那么该线就会消失.我只是不确定是什么产生了这条线.我没有使用阴影,或任何花哨的东西,除了设置barTintColortintColor.如果我不使用大型标题,我会看到该行,但仅限于在视图之间转换时.这就像过渡时UISearchController刚刚过去的那样UINavigationBar.

任何帮助确定这条线的来源是值得赞赏的.

更新:在进一步的调查中,似乎只有在navigationItem.hidesSearchBarWhenScrolling设置为时才会发生false.如果它最初是隐藏的,那么前一个视图中的动画是平滑的,并且显示条形也是平滑的.

行的截屏示例

uinavigationbar ios uisearchcontroller preferslargetitles

9
推荐指数
1
解决办法
987
查看次数

多行导航栏标题在 iOS13 上被截断

我有一个视图控制器,我需要在导航栏上显示多行标题。为此,我写了一个这样的协议 -

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)

uinavigationbar ios large-title preferslargetitles ios13

8
推荐指数
0
解决办法
732
查看次数

有没有办法改变iOS大标题的左边距?

我想知道是否有任何方法可以更改 iOS 大标题左边距属性。我试图在网上找到它的答案,但我没有成功。


额外问题:项目和屏幕水平边之间的默认边距是 15 吗?我问这个的原因是因为我试图将大标题与我的应用程序的其余元素对齐,屏幕左/右边缘有 15 个。

谢谢 :)

ios large-title preferslargetitles

6
推荐指数
1
解决办法
1538
查看次数

加载WKWebView网页后,prefersLargeTtitles自动折叠

WKWebView中的网页加载完成后,大标题崩溃了,我遇到了问题。这是发生情况的GIF示例

我在互联网上四处张望,发现有两个帖子可能指向正确的方向:

并非总是很喜欢LargeTitles-Apple开发者论坛

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中安全区域之后的第一个视图。

xcode ios swift wkwebview preferslargetitles

6
推荐指数
1
解决办法
363
查看次数

大型导航栏Swift的标题和副标题

我在堆栈溢出时看到了类似的帖子,但是没有看到任何特定的大型导航栏,当用户向下滚动时会改变大小.

我想要实现的是我的导航栏中的左对齐标题和副标题,当转换为常规导航栏时,它会隐藏或缩小字幕大小.

SO中的其他答案如下所示:(/sf/answers/2968044341/),创建自定义视图,但它们通常对条形图中的移动没有​​响应.

在此输入图像描述

关于如何正确实现这一点的任何想法?

uinavigationbar swift ios11 preferslargetitles

6
推荐指数
1
解决办法
370
查看次数

UICollectionView(在水平CollectionView内部)滚动时如何缩小大标题?

我正在使用 Brian 的 (LBTA) youtube 演示来创建可滚动的水平菜单栏。

我正在使用collectionView.contentInsetAdjustmentBehavior = .never以避免在调试区域中出现警告。

我只想添加Large titleiOS 11 中引入的内容。

设置navigationController?.navigationBar.prefersLargeTitles = true为启用大标题。它按预期运行良好。

现在,我想在滚动 UIcollectionView(在水平 UICollectionView 内)时将大标题缩小为普通标题。

如何将 scrollView(在 UICollectionView 的滚动中)连接到 NavigationController/NavigationItem 以缩小?

在此处输入图片说明

ios uicollectionview swift ios11 preferslargetitles

5
推荐指数
0
解决办法
395
查看次数

如何将导航栏大标题转换为多行,居中对齐

我正在尝试设计具有多行居中大标题文本的视图控制器,就像苹果的 Ask Siri ( Settings->General->Keyboards->About Ask Siri, Dictation and Privacy...) 一样。

设置->通用->键盘->关于询问 Siri 滚动时

我可以使用以下方法实现居中文本:

let paragraph = NSMutableParagraphStyle()
paragraph.alignment = .center
navigationController?.navigationBar.largeTitleTextAttributes = [.paragraphStyle: paragraph]
Run Code Online (Sandbox Code Playgroud)

我确实从情节提要中设置了导航标题,并尝试了这些来实现多行大标题:

但它们都不适用于 iOS 13。

ios swift preferslargetitles ios13

5
推荐指数
1
解决办法
963
查看次数

UIScrollView + LargeTitle (iOS 11) - 滚动到顶部并显示大标题

我使用以下代码滚动到 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.)的大标题。

这是它的样子: 在此处输入图片说明

我想要达到的结果:

在此处输入图片说明

uinavigationbar scrollview ios swift preferslargetitles

4
推荐指数
2
解决办法
2865
查看次数

iOS 13-推送时,Buggy大标题UINavigationBar

在iOS 13更新中,我遇到了一个令人讨厌的错误,当我使用prefersLargeTitles = trueon UINavigationBar并执行推送时,仍然无法解决。另外,即使我不确定100%是否与之相关,我的视图控制器也嵌入了一个集合视图。

无论如何,我正在谈论的错误/故障是:

在此处输入图片说明

基本上,文本不会像我推动时所期望的那样具有动画效果,并且会一直保持在那里,直到出现新屏幕为止。有小费吗?谢谢

uinavigationbar ios uicollectionview preferslargetitles ios13

4
推荐指数
1
解决办法
362
查看次数

Smooth transition when changing navigation bar "prefersLargeTitles"

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 …

uinavigationbar ios swift preferslargetitles

2
推荐指数
1
解决办法
282
查看次数

在Swift中更改大型标题导航栏的字体

如何在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)

字形 “ W8”是该字体的加粗版本。

字体文件名使用其他语言还是其他问题?

uinavigationbar navigationbar swift preferslargetitles

0
推荐指数
1
解决办法
528
查看次数