1

iOS アプリに 3 つのテーブル セルを含むテーブルがあり、それぞれにカスタム アクセサリ ボタンがあります。セルの 1 つは他のセルよりも高くする必要があります。45px ではなく 60px です。この場合、アクセサリ ボタンは左側にスクートされますが、それらがすべて同じ高さである場合、アクセサリ ボタンは一列に並びます。

アクセサリ ボタンは同じコードで作成されているため、同一である必要があります。この問題は、UITableViewCell 自体に関連しているようです。

こんな感じに仕上がります。画面グラブに上の境界線を含めることができませんでしたが、上のセルの方が高くなっています。これを修正する方法を知っている人はいますか?

アクセサリ ビューの位置がずれている:

セルの作成方法の例を次に示します。これらは名前だけが異なります。高さは tableView: heightForRowAtIndexPath: によって指定されます。

    cell = [[UITableViewCell alloc] init];
    label = [[UILabel alloc] initWithFrame:[cell frame]];
    [label setText:@"Favorites"];
    [cell.contentView addSubview:label];
    [cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    image = [UIImage imageNamed:@"GT.png"];
    [button setBackgroundImage:image forState:UIControlStateNormal];
    button.frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    [cell setAccessoryView:button];
4

1 に答える 1

1

アクセサリ ビューとアクセサリ タイプを設定しています。どちらかを行います。私は取り除くだろうsetAccessoryView:button

[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
[cell setAccessoryView:button];

また、なぜこれを行うのですか:

cell = [[UITableViewCell alloc] init];

cellForRowAtIndexPath次のようなセルを作成する必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = nil;
    if (cell == nil){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = @"Some Text";
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}
于 2012-07-16T23:11:48.130 に答える