UITableView在未分配给父UIViewController视图属性时不滚动

时间:2011-12-10 22:52:16

标签: ios cocoa-touch uitableview scroll

我已经在UIViewController中放置了一个UITableView,并将UITableViewController中的代码复制到我的UIViewController,使其具有UITableViewControllers默认实现的“表数据协议”,并遵循http://developer.apple.com/library/IOs/#documentation/UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html#//apple_ref/doc/uid/TP40007451-CH6-SW10章节“以编程方式创建表视图” “(使用ViewDidLoad代替LoadView,因为我使用IB并有一个笔尖,我为名为tableView的UITableView创建了一个插座)。

现在在上面的链接章节中,UITableView被分配给self.view,它是UIViewController的UIView属性。然后滚动UITableView工作,但UITableView填充整个屏幕隐藏其他视图内容,如UIToolbar - 可能因为它是分配给视图属性后的唯一内容。

如果我省略了分配,则其他视图内容就位,所有内容都已正确调整,但UITableView不会滚动。

如何使用具有静态内容的UIVC(例如工具栏)在UIViewController内滚动UITableView?

以下是相关代码:

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];
    tableView.delegate = self;
    tableView.dataSource = self;
    [tableView reloadData];
    //self.view = tableView;
}

1 个答案:

答案 0 :(得分:0)

如果您在界面构建器中添加了视图控制器中的其他内容,那么这将是UIViewController的.view属性的一部分 - 当您将表视图分配给此时,您将删除所有内容。

如果您的表格视图正常显示但是没有滚动(选择如何?这有用吗?)您可能已禁用用户互动。

您在评论中提到,您的表格视图中只有空单元格 - 我认为这是您的问题的原因。我刚刚创建了一个示例项目,我在表视图中添加了视图控制器视图的子视图,并且滚动很好 - 这是我在那里填充100个虚拟行。如果我没有为数据源和委托方法返回任何内容,则表视图不会滚动。