IOS - 滚动时将 UIView 保持在 UITableView 之上

Posted

技术标签:

【中文标题】IOS - 滚动时将 UIView 保持在 UITableView 之上【英文标题】:IOS - Keep UIView on top of UITableView on scroll 【发布时间】:2015-05-27 20:11:05 【问题描述】:

我有一个 UITableView,顶部有一个 UIView。我希望 UIView 在 tableView 单元格滚动时保持在顶部。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
    if (self.tableView.contentOffset.y > 0) 
        CGRect newframe = self.publicTopView.frame;
        newframe.origin.y = -self.tableView.contentOffset.y;
        self.publicTopView.frame = newframe;
        NSLog(@"After: %f", self.publicTopView.frame.origin.y);
    

【问题讨论】:

...当您使用该代码时出了什么问题? 您说“UIView 在 UITableView 之上”,但通过说“当 tableview 单元格在其上滚动时”与此相矛盾。那么什么是最重要的呢? 【参考方案1】:

您需要将表格视图标题视图设置为您想要的视图。

将此代码添加到您的 viewDidLoad

self.tableView.tableHeaderView = self.publicTopView

【讨论】:

感谢@Omar Al-Shammary 工作正常【参考方案2】:

我不确定你想要完成什么,但我猜出了什么问题。当您滚动您的contentOffset 时,您的contentOffset 将继续变化,假设您的tableView 的内容大小高度为1500,那么您的contentOffset 最终将大于您的视图控制器视图的高度。现在看到您将contentOffset 放入publicTopVieworigin.y 中。因此,您的 publicTopView 可能会移动太多,甚至会在屏幕外移动,具体取决于您的 tableview 内容大小。

【讨论】:

以上是关于IOS - 滚动时将 UIView 保持在 UITableView 之上的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIView 锚定到屏幕上的特定位置并在滚动时将其保留在那里

带有引导警报的Angularjs-向下滚动时将警报保持在屏幕上

iPhone通过滑出表格视图来滚动UITableview

iOS 9 Safari:滚动时将元素更改为固定位置在滚动停止之前不会绘制

使用 FFmpeg 在 iOS 上编写时将 fMP4 转码为 HLS

如何在 iOS 中取消 UIScrollView 在三角形 UIView 外滚动?