UITableView动态添加单元格

时间:2011-04-28 21:03:38

标签: iphone objective-c ios uitableview

我的nib文件中有UITableView,并希望动态地向TableView中的每个单元格添加一些内容。有没有办法做到这一点?我有一个文本数组,我想在TableView中显示以及一组图片。

3 个答案:

答案 0 :(得分:4)

您需要实施UITableViewDataSource协议并覆盖

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

方法。您需要返回tableView:numberOfRowsInSection:方法的数组长度。在tableView:cellForRowAtIndexPath:方法中,您将创建UITableViewCell(如果可用则出列一个)并添加您想要保存数据的UIView(即UIImage等)。使用indexPath.row作为数组的索引来访问数据以填充视图。这一切都有意义吗?听起来比在实践中要复杂得多。

Here is the documentation for the UITableViewDataSource protocol

答案 1 :(得分:0)

我的理想是注册为每个单元格的观察者,然后感兴趣的内容发生了变化,然后它将事件或必要的数据发送到这些单元格。通过比较一些信息,如当前的indexPath或一些唯一的单元标识符,单元格可以决定接受那些发送的数据并改变自己,或者只是传递这个发送的事件和数据。

我已在上面实现了在后台加载缩略图图像,当图像加载后,它会通知这些单元格更新图像。如果任何源数据被修改,它将通知那些已注册的单元格,然后这些单元格将重新加载必要的数据以更新其内容。

答案 2 :(得分:0)

如果要从该视图控制器动态地将该单元格上的单元格和数据添加到其他Tableview控制器----

步骤-1:[[NSNotificationCenter defaultCenter] postNotificationName:@" ReturnTableView" object :(发送数组对象或任何对象)];

步骤-2:转到表格视图控制器

步骤3:在YourTableView.h文件中添加此方法: - (void)change_view:(NSNotification *)notif;

步骤-4:现在进入YourTableView.m文件添加viewDidLoad --- [[NSNotificationCenter defaultCenter] addObserver:self选择器:@selector(change_view :)名称:@" ReturnTableView"对象:无];

步骤-5:现在在YourTableView.m中添加方法---- - (void)change_view:(NSNotification *)notif {

if([[notif name] isEqualToString:@"ReturnTableView"]){
    Your Object Ref(Obj-1)=[notif object];
    [Obj-1 addObjectsFromArray:self.AnotherMutableArray(obj-2)];
    self.obj-2=Obj-1;
   [self.tableView reloadData];
}

} 步骤6:现在添加最后

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@" CellIdentifierName"];

    UILabel *标签;

    label =(UILabel *)[cell viewWithTag:TagNo(例如:0)]; label.text = [self.messageposts objectAtIndex:indexPath.row]; label =(UILabel *)[cell viewWithTag:TagNo(例如:1)]; label.text = [self.messageposts objectAtIndex:indexPath.row];

    返回单元格;

}

现在您的数据已添加 感谢-----