1

我在我的表格视图中添加了一个子视图,当用户滚动表格视图时,子视图也会随之滚动。我该如何防止这种情况?我知道这可能是不将视图添加到 tableview 的子视图中,但我不知道任何其他方法可以做到这一点。谢谢。

4

2 回答 2

3

如果您想让视图成为表格视图的子视图,则可以通过在 scrollViewDidScroll 方法中更改其 origin.y 值来使其浮动(非滚动)。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    self.iv.frame = CGRectMake(self.ivOrigin.x, self.ivOrigin.y + self.tableView.bounds.origin.y, self.iv.frame.size.width, self.iv.frame.size.height);
}

在此示例中,“iv”是图像视图的属性,“ivOrigin”是图像视图的初始原点的属性(当我在 viewDidLoad 中创建图像视图及其框架时定义)。

于 2013-03-10T00:25:45.940 回答
2

UITableView 被构建并旨在成为滚动事物的视图。

因此,您可以与之抗争,正如您所发现的那样,这非常困难,因为有关组件的所有内容都是围绕滚动和快速显示完整列表数据的子集而构建的......或者,您无法抗拒它并且将您的静态项目作为固定位置项目放在桌子上。

如果由于某种原因您无法在主视图中添加表格视图和动画输出项目,您始终可以添加一个自定义 UIView 类,该类同时包含表格视图和动画视图。让您的自定义视图类将包含的表格视图公开为 .table 属性,并且可以调整您放入的容器以在需要时使用“mycontainerObject.tableview”而不是“tableview”。

是的,编写自定义 UIView 子类并为其提供几个属性来保存 UITableView 和任何你正在制作动画的 UIView 需要更多的工作。但从长远来看,它可能比试图“破解”更安全UITableView 的方法和视图层次结构试图给它一个“固定到位”的行为。

于 2013-03-09T22:33:39.923 回答