因爲我只有一個單元,繪製一個細胞我的變量數小區的UILabel的。現在解決問題!
// Create a cell with dynamic number of elements looking like UITableViewCellStyleValue2
- (UITableViewCell *) createDynamicCell {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell;
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
cell.clipsToBounds = NO;
// change frame of one or more labels
CGRect cellFrame = self.tableView.frame;
CGFloat startY = 5.0, startX = 10.0, extra1 = 20.0, gap = 10.0, startX2 = 0.0;
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX + 5, startY, 300 - startX * 2, 44)];
if (costBreakupStyle == CostBreakupDepartment) {
headerLabel.text = NSLocalizedString(@"Cost per department:", @"");
} else {
headerLabel.text = NSLocalizedString(@"Amount spent per airline:", @"");
}
headerLabel.font = [UIFont boldSystemFontOfSize:17];
[cell addSubview:headerLabel];
[headerLabel release];
startY = startY + 44 + 10;
float mid = (cellFrame.size.width - startX * 2)/2;
startX2 = startX + extra1 + mid + gap;
for (int i = 0; i < [dataSource count]; i++) {
startY += 5; // cell gap
NSString *text = [dataSource objectAtIndex:i];
UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX, startY,
mid + extra1, kThinnerRowHeight)];
textLabel.text = [NSString stringWithFormat:@"%@:", text];
float cost = [(NSNumber *) [costArray objectAtIndex:i] floatValue];
NSString *detailText = [NSString stringWithFormat:@"%@ %.2f",
[[Settings getInstance] getCurrencyCode], cost];
UILabel *detailTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX2, startY,
mid - extra1 - gap, kThinnerRowHeight)];
detailTextLabel.text = detailText;
textLabel.font = [UIFont systemFontOfSize:15.0];
textLabel.textAlignment = UITextAlignmentRight;
detailTextLabel.font = [UIFont systemFontOfSize:15.0];
detailTextLabel.textAlignment = UITextAlignmentLeft;
detailTextLabel.textColor = [UIColor blueColor];
[cell addSubview:textLabel];
[cell addSubview:detailTextLabel];
[textLabel release];
[detailTextLabel release];
startY += kThinnerRowHeight;
}
// Total amount label
startY += 15; // add a gap
NSString *text = NSLocalizedString(@"Total amount spent:", @"");
UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX, startY,
mid + 20, kThinnerRowHeight)];
textLabel.text = text;
UILabel *detailTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX2, startY,
mid - extra1 - gap, kThinnerRowHeight)];
detailTextLabel.text = [NSString stringWithFormat:@"%@ %.2f",
[[Settings getInstance] getCurrencyCode],
[[RequestResources getInstance] totalCredit]];
textLabel.font = [UIFont systemFontOfSize:15.0];
textLabel.textAlignment = UITextAlignmentRight;
detailTextLabel.font = [UIFont systemFontOfSize:15.0];
detailTextLabel.textAlignment = UITextAlignmentLeft;
detailTextLabel.textColor = [UIColor blueColor];
[cell addSubview:textLabel];
[cell addSubview:detailTextLabel];
[textLabel release];
[detailTextLabel release];
// Credit remaining label
startY += kThinnerRowHeight;
text = NSLocalizedString(@"Total credit remaining:", @"");
textLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX, startY,
mid + 20, kThinnerRowHeight)];
textLabel.text = text;
detailTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(startX2, startY,
mid - extra1 - gap, kThinnerRowHeight)];
detailTextLabel.text = [NSString stringWithFormat:@"%@ %.2f",
[[Settings getInstance] getCurrencyCode],
[[RequestResources getInstance] remainingCredit]];
textLabel.font = [UIFont systemFontOfSize:15.0];
textLabel.textAlignment = UITextAlignmentRight;
detailTextLabel.font = [UIFont systemFontOfSize:15.0];
detailTextLabel.textAlignment = UITextAlignmentLeft;
detailTextLabel.textColor = [UIColor blueColor];
[cell addSubview:textLabel];
[cell addSubview:detailTextLabel];
[textLabel release];
[detailTextLabel release];
cellHeight = startY + kThinnerRowHeight + 10;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
這是行不通的。對於組表,您不能將separatorstStyle更改爲無。你可以設置它,但不會工作。細胞之間會有分隔符。 – karim 2011-05-30 14:02:09