objective-c - 使 UIScrollView 的 subview 固定,而其他 subview 可滚动

标签 objective-c ios uiscrollview

我想制作一个 View ,其中三个 subview 相互堆叠,中间 subview 可滚动,其他 subview 固定。

如何以编程方式实现此目的?我试过了

  • 将 Root View 的内容大小设置为可 ScrollView 的大小,但这会使所有 View 滚动。

-设置中间 subview 的内容大小而不为 Root View 设置任何属性,但这会使所有 View 不可滚动。

请帮忙。我是 iOS 新手。

提前致谢

最佳答案

您可以在 UIScrollView 上使用 scrollViewDidScroll: 委托(delegate)回调来调整 View 的位置。在回调中,获取 ScrollView 的 contentOffset 并使用它来设置固定 View 的位置。

例如,如果您希望固定 View 始终与 ScrollView 顶部保持 100 像素,请将其初始框架设置为 (0, 100, width, height),然后在回调中将框架设置为 (0 , contentOffset.y + 100, 宽度, 高度)。

结果是 subview 将固定在给定的高度。

关于objective-c - 使 UIScrollView 的 subview 固定,而其他 subview 可滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818040/

相关文章:

ios - 检查 prefix.pch 中的文件类型

ios - 在计算上,这在将 subview 加载到 View 中时更有意义

ios - 为什么改变scrollView的contentsize值不会影响结果

iphone - 如何更改 CCScrollLayer 内容大小? (cocos2d扩展类)

iphone - 验证收据 Autorenewable 订阅

ios - 如何提供纵向和横向两种不同的 View ?

iOS 9 UIWebview 内嵌视频全屏播放导致约束错误

iphone - AFNetworking AFMultipartFormData如何设置key

ios - 点击特定标记如何获取标题名称

ios - 作为 subview 添加到 Collection View 单元格时, ScrollView 中的内容不可见