我想在我的应用程序中实现一个全屏UITableView,它一次只能显示一个带有图像的单元格。在每个单元格的顶部,我希望有一些固定位置的标签,这样当用户滑动到下一个单元格时,它们就会停留在它们的位置,只会更新。
实施此类功能的最有效方法是什么?
这就是我希望最终结果的样子:
答案 0 :(得分:1)
您可能不需要UITableView。您可以在全屏视图中执行与此类似的操作:
标签很少(UILabel对象)
使用带垂直过渡的UIPageViewController滚动视图
这样,带有标签的最顶层部分将保持不变,您只需更新文本,UIPageViewControll将负责来回滚动图像。
答案 1 :(得分:0)
更清晰一点:
首先,如果您打算在顶部放置一排标签,则UITableView不应全屏显示。将标签放在顶部(或底部,或任何地方)似乎更有意义,然后将tableView放在下方/上方/旁边。选择表格单元格后,请根据需要更新标签。
现在,请告诉我们:这个表只有一行吗?如果是这样,为什么不使用UIPickerView(也放置在标签下方/上方/旁边),而不是使用UITableView。 UIPickerView只能在垂直表示中完成同样的事情。向上/向下滑动已经为您内置,无论何时停止,都是选中的行。现在,选择行时,请根据需要采取措施更新外部标签。
希望这有助于...并且编码愉快!
答案 2 :(得分:0)
您可以使用全高度表视图执行此操作。只需将其添加到UIView控制器中,并将标签添加到视图控制器的视图(而不是表视图)。为表启用分页设置,并将行高设置为表视图的高度。您可以使用此代码获取可见单元格的行,并使用该数字执行任何操作以更新标签,
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSArray *paths = self.tableView.indexPathsForVisibleRows;
NSInteger row = [paths[0] row];
ContainerViewController *parent = (ContainerViewController *)self.parentViewController;
parent.label.text = [NSString stringWithFormat:@"This is picture %d", row];
}