1

我确实有这个工作,但我想知道为什么我认为应该工作的方法不起作用。我有一个带有 uitableviewcell 和 WirelessCell.h/.m 的 .xib 作为类。我想向单元格添加一个名为 ADVPercentProgressBar 的对象。我的 cellForRowAtIndexPath 看起来像这样:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    int section = indexPath.section;
    int row = indexPath.row;

    if (section == 6) {
        // Make dynamic rows cell
        static NSString *CellIdentifier = @"wireless3";
        WirelessCell *cell = (WirelessCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if (!cell) {
            NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"WirelessCell" owner:nil options:nil];
            cell = [topLevelObjects objectAtIndex:0];
            cell.progressBar = [[ADVPercentProgressBar alloc] initWithFrame:CGRectMake(10, 22, 300, 28) andProgressBarColor:ADVProgressBarBlue];
            [cell addSubview:cell.progressBar];
        }

        // Set labels here
        NSDictionary *tmpDict = [[[DataSingleton sharedSingleton] sharedWirelessClients] objectAtIndex:row];
        cell.labelUptime.text = [tmpDict objectForKey:@"uptime"];
        [cell.progressBar setProgress:[[tmpDict objectForKey:@"signal"] intValue]*0.001];

        return cell;

    } else {
        return [super tableView:tableView cellForRowAtIndexPath:indexPath];
    }

}

在单元格初始化期间添加 ADVPercentProgressBar 可以正常工作,但我认为我可以将 ADVPercentProgressBar 放在单元格 initWithStyle 中,如下所示:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
        progressBar = [[ADVPercentProgressBar alloc] initWithFrame:CGRectMake(10, 22, 300, 28) andProgressBarColor:ADVProgressBarBlue];
        [self.contentView addSubview:progressBar];

    }

而不是在 ViewController 单元初始化中。但这不起作用。我只是想知道为什么,因为在我看来将对象添加到单元类初始化中似乎是合乎逻辑的。回归自我;}

4

1 回答 1

0

如果您从 Xib 加载单元格,则不会调用 init 方法 use awakeFromNib。同样,所有对象都被实例化并设置了任何出口。

于 2012-04-08T14:27:10.167 回答