gpt4 book ai didi

ios - 如何保持 UIScrollView 内容大小的最小高度?

转载 作者:行者123 更新时间:2023-11-29 02:18:29 24 4
gpt4 key购买 nike

我有一个 UIScrollView A(实际上是一个 UICollectionView)在 UINavigationController B 中填充屏幕。 Controller B 的 adjustScrollViewInsets 设置为 true。

我想在用户向上滚动时隐藏导航栏,并在向下滚动时显示它。以下是我的代码:

func scrollViewDidScroll(scrollView: UIScrollView) {
if (self.lastContentOffset < scrollView.contentSize.height - scrollView.frame.size.height && self.lastContentOffset > scrollView.contentOffset.y) {
// dragging down
if self.navigationController!.navigationBarHidden {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
} else if (self.lastContentOffset > 0 && self.lastContentOffset < scrollView.contentOffset.y) {
// dragging up
if !self.navigationController!.navigationBarHidden {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}

self.lastContentOffset = scrollView.contentOffset.y
}

现在的问题是,由于iPhone 6+的屏幕太大,当导航栏隐藏时, ScrollView A的contentSize小于它的frame(即全屏frame)。在这种情况下, ScrollView 将无法滚动,导航栏将永远不会再次返回。

我想手动保持 A 的 contentSize 到屏幕的高度至少为 height + 1,但不知道该怎么做。有人能帮忙吗?或者提供更好的解决方案?

顺便说一句,我使用的是 iOS 8 和 Swift。

最佳答案

假设您需要将 ScrollView 的最小内容大小保持为 100(当然这将是动态的并且会因设备而异)

NSInteger minScrollViewContentHeight = 100;

用内容填充 ScrollView 后,您需要检查 ScrollView 的内容大小是否小于所需的最小 ScrollView 内容大小。如果它小于所需的内容大小,则需要按如下方式设置 ScrollView 的最小内容大小 -

if(scrollView.contentSize.height < minScrollViewContentHeight)
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width, minScrollViewContentHeight)];

关于ios - 如何保持 UIScrollView 内容大小的最小高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28453072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com