0

我正在用营养成分填充 UITableView 表。每行包括营养素的绝对量以及每日百分比值。我想将金额与每行的左侧对齐,将每日百分比值与右侧对齐,以便信息看起来更整洁,并且所有值都对齐。有什么办法可以做到这一点吗?谢谢!

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NutritionCell" forIndexPath:indexPath];


    if(!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"NutritionCell"];
    }


    CGRect oldFrame = cell.frame;
    cell.textLabel.frame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y, tableView.frame.size.width/2, oldFrame.size.height);
    cell.detailTextLabel.frame = CGRectMake(oldFrame.origin.x + tableView.frame.size.width/2, oldFrame.origin.y, tableView.frame.size.width/2, oldFrame.size.height);

    cell.textLabel.text = [factamount objectAtIndex:indexPath.row];
    cell.detailTextLabel.text = [percentDV objectAtIndex:indexPath.row];
    return cell;

}
4

2 回答 2

2

您可以使用以下代码,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = @"Left";
    cell.detailTextLabel.text = @"Right";

    return cell;
}

如果您想在单元格中使用多个自定义标签(两个以上),您也可以这样做并将其添加为子视图并使用属性cell.contentView对齐。textAlignment您可以设置这些标签的框架以在适当的位置显示。

在这种情况下,您需要这样做

myLabel1.textAlignment = NSTextAlignmentLeft;
myLabel2.textAlignment = NSTextAlignmentRight;
于 2012-12-09T00:40:10.523 回答
2

你也可以使用 UITableViewCellStyleValue1 来做到这一点。它会自动向单元格添加 2 个标签:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *cellID = @"CELLID";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
        if(!cell) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellID];
        }

        cell.textLabel.text = @"AMOUNT TEXT";
        cell.detailTextLabel.text = @"PERCENT TEXT";
        return cell;
    }
于 2012-12-09T00:42:20.830 回答