将 UITableVIew 添加到视图

Posted

技术标签:

【中文标题】将 UITableVIew 添加到视图【英文标题】:Adding a UITableVIew on to a View 【发布时间】:2015-03-25 15:41:26 【问题描述】:

当用户点击按钮时,我会滑入UIView(此UIVIew 是通过XIB 文件创建的)。

我已将TableView 添加到此XIB 文件并连接datasourcedelegate。见下图:

在 View 类中我添加了以下方法。

-(id)initWithFrame:(CGRect)frame

    self = [super initWithFrame:frame];

    [self addSubview:self. tablev];


在头文件中我有以下代码。

@interface FlipView : UIView <UITableViewDataSource,UITableViewDelegate>

UIViewController 类的代码。这个类中有一个按钮,当用户点击它时,UIView 将显示。单击按钮时将执行的代码。

fv = [[FlipView alloc] initWithFrame:cell.bounds];

[self.view addSubview:fv];

[self.view addSubview: fv];

view 与 tableview 完美弹出。但是,不会填充 tableview 上的内容。当我调试代码时,我发现没有调用委托方法。我该如何解决这个问题?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

    MyCell

 *cell = [tableView dequeueReusableCellWithIdentifier:@"c" forIndexPath:indexPath];

    if (cell == nil)

    

        cell = [[MyCell

 alloc] initWithStyle:UITableViewCellStyleSubtitle

                                             reuseIdentifier:@"c"];

    

    cell.la.text=@"hiiiii";

【问题讨论】:

请显示完整代码,我认为 numberOfRow = 0 【参考方案1】:

数据源和代理连接到文件的所有者和 FlipView。您可以从 xib 中删除委托和数据源,并以编程方式添加:

self.tableView.delegate = self;
self.tableView.dataSource = self;

我建议在 initWithFrame 方法中这样做。

【讨论】:

我添加了断点。它仍然没有进入cellforrowatindexpath 集合委托和数据源是否被调用? 是的。当我添加断点时,它执行了这些行。帮助。 我猜你的表格视图仍然为零。可以查一下吗? 我如何检查它是否是nil

以上是关于将 UITableVIew 添加到视图的主要内容,如果未能解决你的问题,请参考以下文章

将 UITableVIew 添加到视图

将视图添加/删除到表视图的超级视图后,UITableView 停止滚动

如何将 UITableView 作为子视图添加到 xib 中的 UIView?

使用自动布局将子视图添加到 UITableView 不会设置其框架

UITableView 没有在 reloadData 上重新加载

CoreData + UIViewController + UITableView