【问题标题】:How to add a view inside an UITableView programmatically?如何以编程方式在 UITableView 中添加视图?
【发布时间】:2011-12-14 16:33:47
【问题描述】:

在 Interface Builder 中,很容易将 UIView 添加到 UITable 并正确显示它,只需拖放即可完成。但现在这将是可选的,因此必须以编程方式放置。

界面生成器中的外观如下:

当我将新视图添加为子视图时,它显示在 UITableView-content 的顶部,但内容应该有一些偏移。我用下面的代码试了一下:

self.scrollView.frame = CGRectMake(0, -140, self.scrollView.frame.size.width, self.scrollView.frame.size.height);
[self.tableView addSubview:self.scrollView];
[self.tableView setContentInset:UIEdgeInsetsMake(140,0,0,0)];
[self.tableView setContentOffset:CGPointMake(0, -140) animated:NO];

这似乎有效,它显示正确。但是当我向下滚动时,部分标题停留在距离顶部 140 像素的位置。所以我想我使用了错误的方法,但完全不知道如何解决它。谁能给我推动正确的方向?

【问题讨论】:

    标签: iphone cocoa-touch uitableview uiview ios5


    【解决方案1】:

    好吧,我觉得我真的很愚蠢。经过几个小时的尝试,我想到了一些东西。刚刚检查了 .xib 文件的来源,并将带有子视图的那个与没有的比较。出现以下情况:

    • UIViewUITableView 的子视图的一部分。
    • 添加了以下参考:<reference key="IBUITableHeaderView" ref="204195654"/>

    所以,把代码改成这样:

    [self.tableView addSubview:self.scrollView];
    [self.tableView setTableHeaderView:self.scrollView];
    

    而且它有效!

    【讨论】:

    • 你的意思是自动把你添加到tableView.HeaderView的视图转过来?
    • 必须将tableHeaderView 属性设置为我的标题视图。不知道addSubview:是否需要,有可能不需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2012-05-26
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多