作者:邓尕恒_789 | 来源:互联网 | 2023-01-13 14:04
我有一个嵌入在导航控制器中的视图控制器,希望将大标题选项设置为true; 在View Controller里面有一个Scroll View.
我想在滚动时缩小导航栏.
我怎么能存档这个?
XCode 9,Swift 4,iOS 11
1> Saúl Moreno ..:
我没有实现它使用UIScrollView,但我存档它与其他ViewControllers一起使用UITableView作为第一个视图.
如果tableView不是第一个视图,则大标题无法自动隐藏.您很可能需要确保tableView是主视图的子视图数组中的第一个元素.
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/d67981797265d9c7.webp)
我希望这能解决你的问题.
omg ...有史以来最愚蠢的逻辑..非常感谢你解释得这么好.
2> Kamil Szosta..:
你尝试过这样的事吗?当内容向上滚动时,它会转换大标题显示模式.
class P1ViewController: UIViewController, UIScrollViewDelegate
{
var canTransitiOnToLarge= false
var canTransitiOnToSmall= true
func scrollViewDidScroll(_ scrollView: UIScrollView)
{
if canTransitionToLarge && scrollView.contentOffset.y <= 0 {
UIView.animate(withDuration: 0.5) {
self.navigationItem.largeTitleDisplayMode = .always
}
canTransitiOnToLarge= false
canTransitiOnToSmall= true
}
else if canTransitionToSmall && scrollView.contentOffset.y > 0 {
UIView.animate(withDuration: 0.5) {
self.navigationItem.largeTitleDisplayMode = .never
}
canTransitiOnToLarge= true
canTransitiOnToSmall= false
}
}
}