1

我的 iOS 应用程序中有一个包含三个表格单元格的表格,每个单元格都有一个自定义附件按钮。其中一个细胞需要比其他细胞高;它是 60 像素而不是 45 像素。在这种情况下,附件按钮会滑到左侧,而如果它们的高度相同,则附件按钮会对齐。

附件按钮由相同的代码创建,因此它们应该相同。该问题似乎与 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 回答