UITableViewCell之外的标签更新当前屏幕上的单元格

时间:2014-10-13 20:42:48

标签: ios objective-c uitableview uilabel fixed

我想在我的应用程序中实现一个全屏UITableView,它一次只能显示一个带有图像的单元格。在每个单元格的顶部,我希望有一些固定位置的标签,这样当用户滑动到下一个单元格时,它们就会停留在它们的位置,只会更新。

实施此类功能的最有效方法是什么?

这就是我希望最终结果的样子:

enter image description here

3 个答案:

答案 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];
}