我正在尝试在 UITableView 之上添加一个 UIView。其目的是当用户下拉内容时(通常会进行下拉刷新),而不是显示 UITableView 的背景,表格上方的 UIView 应该增长以保持粘在向下滑动的顶部 UITableViewCell 上.当用户向另一方向滚动时(内容向上滚动),UIView 将消失,就好像它只是顶部的 UITableViewCell。
您可以在 Path 中看到此实现(下拉时间轴和顶部个人资料图片展开,example at 0:15)和新 Facebook 应用程序的签到( map 在附近地点列表上方增长)。
不确定解决此问题的最佳方法。我认为要达到类似的效果,您必须将 UIView 作为第一个单元格。但是this question我有点担心在滚动时尝试调整单元格的高度。从理论上讲,调整大小只需要在下拉时发生,而不是向上推,如果它只是顶部的 UITableViewCell。
编辑:当前代码 - 使用 rummad 的建议,我在 contentOffset 的 tableview 上添加了一个 keypath 观察器,并根据它调整了单元格的高度,但它到处乱跳。
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if (self.tableView == (UITableView*)object) {
if ([keyPath isEqualToString:@"contentOffset"]) {
CGPoint scrollLoc = self.tableView.contentOffset;
if (scrollLoc.y < 0) {
NSLog(@"offset:%@", NSStringFromCGPoint(scrollLoc));
headerSize = 100 - scrollLoc.y;
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
}
}
}
最佳答案
实际上看起来有一些库,使用第一个表格单元格不是可行的方法。 “视差”似乎是神奇的谷歌术语。
http://rowboatrevolution.com/2012/02/uitableview-parallax-background-a-la-path/ https://github.com/Rheeseyb/RBParallaxTableViewController
关于iphone - 随着用户拉动,UITableView 中的标题不断增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585357/