如何使用单元格填充tableview?

时间:2012-07-29 08:56:47

标签: iphone ios5 xcode4.3

到了这一点,我有自定义单元格,里面有2个标签和1个文本字段。标签和文本字段都得到了用户的输入。我还有其他观点,其中包含uitableview。我的问题是如何在uitableview中填充单元格?请帮忙。

这是我在tableviewcontroller中的代码。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1; // i want to populate this using 'count' but i dont know how.
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:[CustomCell reuseIdentifier]];
    if (cell == nil)
    {
        [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = _customCell;
        _customCell = nil;
    }       
    cell.titleLabel.text = [NSString stringWithFormat:@"%@",titleTextString];
    cell.timerLabel.text = [NSString stringWithFormat:@"%@",timerString];
    cell.statusLabel.text = [NSString stringWithFormat:@"%@",statusString];

    return cell;    
}

如果在完成用户输入后按下添加按钮,我如何填充我的tableview?如果你不介意帮我代码,请。我是初学者,通过使用意见我很难理解。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您为其中包含2 UILabel和一个UITextField的单元格创建了一个自定义nib文件,并且您希望在填充表格时访问这些对象。以下是此问题的一些步骤:

首先,您必须为自定义单元格中的每个对象提供一个tag个数字。您可以在Interface Builder的Attribute Inspector中找到此属性。假设您给出了第一个标签标签1,第二个标签2和文本字段3。

第二,你必须给一个。此nib文件的标识符,例如MyCustomCellIdentifier。此标识符稍后将在包含该表的视图中使用,以便您可以链接到该表。

第三,同样在自定义单元格笔尖中,单击显示文件所有者的黄色方块,然后在Identity Inspector中将类更改为具有将使用此自定义单元格的表的类名。

第四,在您拥有将使用自定义单元格的表的类中,创建类型为UITableViewCell的出口。我们将在自定义nib单元格中链接它。

第五步,转到自定义笔尖单元格,单击单元格窗口,然后在Connections Inspector链接New Referencing Outlet中链接到文件所有者,您将看到在此类表格中创建的插座,只需链接到它

现在,由于建立连接事情更容易,在cellForRowAtIndexPath函数中(在包含该表的类中肯定),您必须从nib文件加载自定义单元格,如下所示:

static NSString *tableIdentifier = @"MyCustomCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableIdentifier];
if(cell == nil)
{
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TheNibClassNameOfYourCustomCell" owner:self options:nil];
    if([nib count] > 0) cell = theNameOfTheOutletYouUsed;
    else NSLog(@"Failed to load from nib file.");
}

好的,您的自定义单元格已加载到变量cell中,现在您必须从您创建的代码中访问其中的每个对象:

UILabel *label1 = (UILabel *)[cell viewWithTag:1];
UILabel *label2 = (UILabel *)[cell viewWithTag:2];
UITextField *textField1 = (UITextField *)[cell viewWithTag:3];

现在,您可以轻松地通过label1label2textField1访问所有内容label1.text = @"Hi";

我希望这能回答你的问题。