滚动时如何在 UIScrollView 中固定图像/视图

Posted

技术标签:

【中文标题】滚动时如何在 UIScrollView 中固定图像/视图【英文标题】:How to pin an image/view inside a UIScrollView when scrolling 【发布时间】:2017-04-23 19:26:37 【问题描述】:

我一直在寻找一种在滚动时将视图/图像固定到 UIScrollView 顶部的方法。但是,我遇到的帖子/文章不在 swift 3 中。我不确定我是否在网络上正确输入了我的问题。所以我的问题是我们如何实现与 UITableView 或 UICollectionView 相同的行为。当您滚动时,一个部分将粘在顶部,直到另一个部分将其向上推。我想知道我们是否能够使用视图/图像并将它们固定在 UIScrollView 的顶部。下面是一个有 4 个视图的 UIScrollView 的屏幕截图。

因此,当滚动时,我想将第一个视图/图像固定在顶部,直到另一个视图/图像将其推入。还有可能确定哪个视图贴在顶部。所以可以说我只希望红色视图保持不变,直到另一个红色视图推动它。一段时间以来一直在寻找一种方法来实现这种行为。

请帮助,非常感谢此时提供的任何帮助。谢谢。

【问题讨论】:

【参考方案1】:

你说得对,UITableView 有这种行为。那你为什么不自定义UITableView的header view呢?

只需从 viewForHeaderInSection 返回一个 UIImageView

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
    UIImageView *imv = [[UIImageView alloc] init];
    imv.backgroundColor = [UIColor cyanColor];
    imv.image = [UIImage imageNamed:@"sampleImage.jpg"];
    return imv;

别忘了给它设置高度

-  (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
    return 50;

【讨论】:

以上是关于滚动时如何在 UIScrollView 中固定图像/视图的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 extjs 网格中固定的水平滚动条?

如何在颤动中固定背景图像的大小和位置?

Excel高手请进:如何在电子表格中固定某一行或某一列

仅在 IE 中固定定位元素闪烁,如何解决?

图像缩放时在 UIScrollView 中停止滚动图像

使用 UIScrollView 在多个图像之间水平滚动