如何滚动到 UITableView 底部以查看所有单元格内容而不调整单元格高度?
Posted
技术标签:
【中文标题】如何滚动到 UITableView 底部以查看所有单元格内容而不调整单元格高度?【英文标题】:How to scroll to bottom of UITableView to see all cell contents without adjusting cell height? 【发布时间】:2014-12-25 04:03:53 【问题描述】:我的 UITableView 无法滚动到最后一个单元格时遇到问题。它只是“反弹”回来。根据我运行的 iPhone 模拟,它会反弹超过 2 个单元格,所以如果我在 3.5 英寸模拟器上运行它,最后 2 个单元格将无法访问。
我有启用 AutoLayout 的约束设置,这是我的要求。我查看了一些关于 SO 的建议,尝试了一些解决方案,但到目前为止,它不起作用。
如果可能,我不想设置单元格高度。
在滚动状态下,当我向上滚动时,我可以看到另外 2 个单元格,但是一旦我松开鼠标,它就会弹回正常状态,最后 2 个单元格不在视图中。
如何在不调整高度的情况下让 UITableView 在小窗框内滚动,仍然可以看到所有单元格内容?
【问题讨论】:
你的 tableView 的框架是什么? 我很抱歉,对此还是很陌生,我如何得到你的要求?我 NSLog 表格视图的框架:0, 24, 600, 576 是的,你必须确保你的框架是可见的,而我不清楚你的层次结构。 我的 tableview 在 UIView 中,并且 UIView 位于屏幕底部附近,如果我向上滑动,从屏幕截图中可以看到 tableview 是可见的。我将如何解决这个问题?我还放了故事板的截图。谢谢 @WorldOfWarcraft 您指的是调整单元格的高度吗?..如果不是,我该如何实现? 【参考方案1】:几个问题:
1.您设置的约束显示警告。根据您的应用,您需要自行修复;
2.由于约束问题,底部单元格不可见。
在你的swipeUpMethod
方法中,你需要调整你的约束。在这种情况下,我将self.markerViewTopVerticalConstraint.constant
设置为-(self.view.frame.size.height/2.5) - 60
。因此,您需要根据 tableView 中显示的单元格数量来计算约束高度。
- (void)swipeUpMethod
[self.view layoutIfNeeded];
[UIView animateWithDuration:0.3
animations:^
self.markerViewTopVerticalConstraint.constant = -(self.view.frame.size.height/2.5) - 60;
[self.view layoutIfNeeded];
];
self.swipeMarkerImageView.image = [UIImage imageNamed:@"down_arrow"];
NSLog(@"self.markersView: %@",self.markersView);
NSLog(@"self.markersTableView :%@",self.markersTableView);
现在,它看起来像:
圣诞快乐。
【讨论】:
【参考方案2】:这是一个自动布局问题。确保自动布局设置正确。据我从您的快照中了解到,地图视图的高度是恒定的,而表格视图的高度会根据设备高度而变化。现在要正确设置自动布局,选择地图视图并添加以下约束,顶部、左侧、宽度和高度。确保取消选中“限制到边距”。现在对于表格视图,使用以下自动布局。添加顶部、底部左侧和右侧约束。 在此之后,请检查其他模拟器。希望这会有所帮助。
【讨论】:
2 个问题。 1:你说的是“Google Map View”还是“Marker View”?2:设置宽度和高度的约束会在运行不同的模拟器时产生冲突。以上是关于如何滚动到 UITableView 底部以查看所有单元格内容而不调整单元格高度?的主要内容,如果未能解决你的问题,请参考以下文章