为什么我的配件按钮向左移动以获得更高的桌面单元格?

时间:2012-07-16 22:44:26

标签: ios uitableview

我的iOS应用程序中有一个表,有三个表格单元格,每个表格都有一个自定义附件按钮。其中一个细胞需要比其他细胞高;它是60px而不是45px。在这种情况下,附件按钮被拉到左侧,而如果它们都是相同的高度,则附件按钮将排成一行。

附件按钮由相同的代码创建,因此它们应该相同。这个问题似乎与UITableViewCell本身有关。

最终看起来像这样。我没有在屏幕抓取中包含上边框,但上部单元格更高。有谁知道我怎么解决这个问题?

Misaligned accessory views:

以下是如何创建单元格的示例。这些仅在名称上有所不同;高度由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];

1 个答案:

答案 0 :(得分: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;
}