未调用cellForRowAtIndexPath但调用了为UITableView调用的numberofRowsInSection作为子视图添加到UIView

时间:2015-03-18 04:12:29

标签: ios

我创建了自定义提醒视图,我想将UITableView添加为子视图。我还没有通过UITableView创建(IB),但是以编程方式创建了,我还实现了协议UITableViewDelegate中的UITableViewDataSourceUIView。但未调用方法cellForRowAtIndexPath。 我认为问题在于我必须通过IB创建UITableView使其可见。可能不是通过IB创建,而是使用下面的代码并实现委托方法。

这是代码

        privacy_tableview = [[UITableView alloc] initWithFrame:CGRectMake(10.0, 0.0, alert_width-40.0, 0.0)];                          [privacy_tableview sizeToFit];
        privacy_tableview.frame = CGRectMake(10.0, 0.0, alert_width-40.0, privacy_tableview.frame.size.height);

       //Add scrollview which contain uitableview
        MsgScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10.0, alert_height, alert_width-20.0, (privacy_tableview.frame.size.height>max_msg_height)?max_msg_height:privacy_tableview.frame.size.height)];

        [privacy_tableview setDataSource:self];
        [privacy_tableview setDelegate:self];

        [privacy_tableview reloadData];

1 个答案:

答案 0 :(得分:2)

表的高度为零privacy_tableview.frame.size.height = 0.0并且根据iOS的表视图编程基础,只创建可见单元格并显示在表格中。

因此,将高度增加到至少一行的高度可以调用TableView的cellForRowAtIndexPath方法。