快速从小到大导航栏标题快速过渡

时间:2019-01-09 06:13:01

标签: swift tabs navbar titlebar

因此,在我的第一个vc上,我已将导航栏设置为大标题。然后我有一个按钮,该按钮转到带有小标题导航栏的vc。

当我从第二个vc回到第一个vc时,它会显示小标题,然后跳到大标题。

这是我的第一个vc BC代码,它是一个标签视图控制器:

    override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.navigationBar.prefersLargeTitles = true
}

这是viewDidLoad()中第二个vc的代码:

    self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "Avenir-Black", size: 20)!]
    self.navigationController?.navigationBar.prefersLargeTitles = false

This is what I mean about the jumpy transition

谢谢

2 个答案:

答案 0 :(得分:0)

在第二个ViewController上,尝试更改viewWillDisappear函数中的NavBarPreference。

示例:

func viewWillDisappear(_ animated: Bool){ 
self.navigationController?.navigationBar.prefersLargeTitles = true
    }

因此,在返回第一个vc之前,请先更改NavBar首选项

替代解决方案:使用情节提要

您可以单击所需的VC,然后单击其navBarItem,然后转到属性的右侧,然后在“大标题”上从下拉列表中选择“从不,始终或自动”。

Example

答案 1 :(得分:0)

简短的答案是不依赖data <- data.frame(x = rnorm(20)) %>% mutate(y1 = 1.2*x + rnorm(20, sd=0.2), y2 = 0.9*x + rnorm(20, sd=0.3)) %>% gather(value = value, key = key, -x) ggplot(data, aes(x = x, y = value)) + geom_point(aes(shape = key, colour = key)) + stat_poly_eq(aes(label = ..eq.label.., colour = key), formula = y ~ poly(x, 1, raw = TRUE), eq.x.rhs = "x", # eq.with.lhs = c(paste0(expression(y[1]), "~`=`~"), # paste0(expression(y[2]), "~`=`~")), eq.with.lhs = paste0(expression(y[ind]), "~`=`~"), parse = TRUE) + ylab(NULL) (默认值)和largeTitleDisplayMode = .automatic,而是用prefersLargeTitles = true/false显式设置.always.never(是的,即使在从不使用时也是如此。

由于苹果文档中的这个原因,您需要始终偏爱“ LargeTitles”为真:

  

如果导航栏的preferredsLargeTitles属性为false,则此属性无效,并且导航项的标题始终显示为小标题。

这是您在iOS11 / 12上遇到的一个问题,但是在iOS13上,它的出现会有所不同。