`UITableViewCellAccessoryCheckmark`是一张图片吗?

4
我需要定义一个自定义的UITableViewCell,其中UITableViewCellAccessoryCheckmark位于UILabel的左侧。我应该将其定义为图像,还是有更聪明的方法?
谢谢, 卡洛斯

为什么你想要它在左边?标准的方法是将 accessoryType 设置为 UITableViewCellAccessoryCheckmark - vicvicvic
因为我还想在同一个单元格中放置一个UITableViewCellAccessoryDetailDisclosureButton。勾选标记应该在左边,按钮应该在右边。 - carvil
3个回答

6

根据苹果文档,这只是一个关于UIView的类。因此,将其定义为一个UIView。

首先,你需要创建自己的UITableViewCell子类(在本例中称为MyCell)。在这个类中,在layoutSubviews方法中定义AccessoryView的框架。

- (void)layoutSubviews {
    [super layoutSubviews];
    self.accessoryView.frame = CGRectMake(0, 0, 20, 20);
}

在您的视图控制器中,告诉表格使用此类作为单元格。此外,您需要将accessoryView设置为包含图像的UIImageView。

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"check.png"]] autorelease];
    }
    // Configure the cell.
    return cell;
}

当用户点击单元格时,您可以简单地更改表单单元格的accessoryView图像。

我该如何在UIView中设置UITableViewCellAccessoryCheckmark? - carvil
是的,我知道可以用图像来实现。但是,我想知道是否可以使用UITableViewCellAccessoryCheckmark。如果不行的话,我会按照你建议的使用图像。 - carvil
不好意思,我有点晚意识到这个问题。无法使用UITableViewCellAccessoryCheckmark,因为您无法更改其框架。 - audience

2

这是UITabelViewCell的一种标准附件类型,尽管您可以使用图像并定义自己的自定义附件视图类型,方法是将your custom view(您可以在此处添加图像)分配给UITabelViewCellaccessoryView属性。

请参阅accessoryType文档。

请参阅accessoryView文档。


0

我认为使用UITableViewCellAccessoryCheckmark不可能实现这一点。

  1. 你需要在

    tableView:cellForRowAtIndexPath:
    

    方法中创建一个单元格。

  2. 添加自定义子视图或返回自定义单元格。

  3. 根据数据状态使其看起来像选中或未选中的复选标记。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接