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
放入publicTopView
的origin.y
中。因此,您的 publicTopView
可能会移动太多,甚至会在屏幕外移动,具体取决于您的 tableview 内容大小。
【讨论】:
以上是关于IOS - 滚动时将 UIView 保持在 UITableView 之上的主要内容,如果未能解决你的问题,请参考以下文章
如何将 UIView 锚定到屏幕上的特定位置并在滚动时将其保留在那里
带有引导警报的Angularjs-向下滚动时将警报保持在屏幕上
iOS 9 Safari:滚动时将元素更改为固定位置在滚动停止之前不会绘制