0

UITableView テーブルに栄養成分を入力しています。各行には、栄養素の絶対量と 1 日あたりの値の割合が含まれています。金額を各行の左側に、1 日の値の割合を右側に揃えて、情報が見やすくなり、すべての値が一列に並ぶようにしたいと考えています。これを行う方法はありますか?ありがとう!

- (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;
}

セルで複数のカスタム ラベル (2 つ以上) を使用する場合は、それも同様に行い、サブビューとして追加し、プロパティ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 に答える