我一直在开发一个应用程序,其中我有UIViewController
,我添加了UITableView
。现在,我想在UIView
顶部的固定位置添加tableview
。
我尝试了以下代码,但UIView
与tableView
一起滚动:
- (void)viewDidLoad {
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(250, 100, 50, 50)];
view.backgroundColor = [UIColor orangeColor];
[_tableView addSubview:view];
[_tableView bringSubviewToFront:view];
}
如何阻止UIView
滚动?
答案 0 :(得分:4)
好吧,既然UITableView
是UIScrollView
的子类,你可以尝试实现类似“浮动视图”的东西。要做到这一点,你应该确保
contentOffset
发生变化时,应该更新浮动视图的位置(以便在用户滚动时可视化地浮动在其他内容之上)你可以尝试这样的事情(假设floatingHeaderViewCenter
是floatingView
的初始中心:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
self.floatingHeaderView.center = CGPointMake(floatingHeaderViewCenter.x + scrollView.contentOffset.x, floatingHeaderViewCenter.y + scrollView.contentOffset.y);
[scrollView bringSubviewToFront:floatingHeaderView];
}
虽然你最好有一个包含两个子视图的视图容器:tableview和浮动视图。
答案 1 :(得分:2)
您不应将视图添加为表视图的子视图。相反,视图控制器视图应该是其他视图的容器,在本例中是视图和表视图。将这两者添加为视图控制器视图的子视图。
答案 2 :(得分:1)
如果视图(viewToBringFront)隐藏在后面,那么您可以通过添加以下行来使其显示:
self.viewToBringFront.layer.zPosition = MAXFLOAT;