UITableViewCell:initWithFrame:不再使用reuseIdentifier

时间:2015-01-14 03:32:42

标签: objective-c uitableview

我在创建UITableViewCell时遇到问题,因为UITableViewCell:initWithFrame:不再使用了reuseIdentifier。请留意我,我已经查看过有关此问题的其他问题,但无法找到它们。所以这是我的功能。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    MyCellObject *cell = (MyCellObject *)[tableView_ dequeueReusableCellWithIdentifier:@"cellid"];
    if (cell == nil) {
        cell = [[[ChatCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"cellid"] autorelease];
    }
    return cell;
}

当我从其他问题中读到时,我试过了:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    MyCellObject *cell = (MyCellObject *)[tableView_ dequeueReusableCellWithIdentifier:@"cellid"];
    if (cell == nil) {
        cell = [[[MyCellObject alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cellid"] autorelease];
    }
    return cell;
}

但我的手机不会显示其文字。我可以点击单元格行,它会变为选择,但没有可见文本。因为我的单元格文本是在我的MyCellObject而不是cell.textLabel.text中处理的,所以我需要使用框架(initWithFrame)初始化单元格,但我还需要使用标识符({{ {1}})。

谢谢!

编辑:我不认为reuseIdentifier因为在上述函数被弃用之前一切正常。这是MyCellObject的一部分,它来自MyCellObject

UITableViewCell

我设置的原因是我可以"微管理"其中的文字多了一点。

1 个答案:

答案 0 :(得分:0)

1)您尚未设置单元格标题。所以你不会在单元格上看到任何文字。在这里,您使用了UITableViewCell类。因此,您需要在storyboard中为单元格添加标签,并在您的案例中将UITableViewCell设置为MyCellObject类。然后,您就可以将文本设置为该标签。

2)你可以使用

  

MyCellObject * cell =(MyCellObject *)[tableView dequeueReusableCellWithIdentifier:@“cellid”];

试试这个..

  

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

     

MyCellObject * cell =(MyCellObject *)[tableView dequeueReusableCellWithIdentifier:@“cellid”];

     

cell.myCustomLabel.text = @“你的文字”;

     

返回单元格;

     

}