我确实有这个工作,但我想知道为什么我认为应该工作的方法,不起作用。 我有一个带有uitableviewcell的.xib和一个WirelessCell.h / .m作为类。 我想在单元格中添加一个名为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单元初始化中。但这不起作用。 我只是想知道为什么,因为在对单元类初始化中添加对象似乎是合乎逻辑的。 回归自我; }