2012-07-29 83 views
-1

到点,我有自定义单元格,里面有2个标签和1个文本框。标签和文本字段都有来自用户的输入。我也有其他观点,它里面有可用的视图。我的问题是我如何在uitableview中填充单元格?请帮忙。如何使用单元填充tableview?

这是我在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

如果我理解正确你的问题,你做你的细胞中有2 UILabel和一个UITextField自定义笔尖文件,并且要填充表格的时候访问这些对象。以下是此问题的一些步骤:

首先,您必须为自定义单元格中的每个对象提供tag号码。您可以在Interface Builder的属性检查器中找到该属性。假设你给了第一个标签标签1,第二个标签2和文本字段3.

第二你必须给一个。此笔尖文件的标识符,例如MyCustomCellIdentifier。此标识符稍后将在具有表格的视图中使用,以便您可以链接到该表格。第三,同样在自定义单元格笔尖中,单击文件所有者的黄色方块,然后在Identity Inspector中将Class更改为具有将使用此自定义单元格的表格的类名称。

第四,在您使用自定义单元格的表中,创建类型为UITableViewCell的插座。我们将链接在自定义笔尖单元格中。第五步,转到自定义笔尖单元格,单击单元格窗口,然后在Connections Inspector链接新引用出口到文件的所有者,您将看到您在表格类中创建的出口在这里显示,只需链接到它。

现在由于连接建立的东西更容易,在cellForRowAtIndexPath功能(在包含该表肯定类),你必须从笔尖文件加载自定义单元格如下:

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]; 

现在,您可以通过访问label1一切,label2textField1很容易就像label1.text = @"Hi";

我希望这可以回答你的问题。

+0

谢谢你的回答,但是我应该在numberOfRowsInSection里写什么?我的意思是,我如何填充我的单元格在tableview中,如果我按“添加”按钮。 – SyntaxError 2012-07-29 10:33:39

+0

通常情况下,您将拥有一个'NSMutableArray',您将在其中推送所有新数据,因此每次单击添加按钮时,都会在该数组中添加新数据。因此,你可以在'numberOfRowsInSection'中使用数组的大小,这种情况下''yourArray count];'还请记住,如果你的行数据是混合的东西,你可以使用'NSMutableDictionary'来代替。 – antf 2012-07-29 10:42:37

+0

呃...即时通讯抱歉,我应该写在cellForRowAtIndexPath内?我把我的数组放在numberOfRowsInSection中,使用return [array count];但是我应该在cellForRowAtIndexPath里面添加什么?谢谢。 – SyntaxError 2012-07-29 11:41:34