2010-03-03 74 views
0

是否有任何简单的方法将“UITableViewCellAccessoryCheckmark”的颜色从标准蓝色更改为黑色? 或者我需要做一个uitableviewcell的子类并插入一个imageview我自己?黑色的UITableViewCellAccessoryCheckmark?

感谢:-) 塞巴斯蒂安

回答

1

据我知道有没有这样做的方式。

我最终为我的accessoryView实现了一个完整的自定义视图。它还使得用户交互时更改它更容易,并且决定可点击区域,而这往往是我想要的方法。如果你不需要不同的观点,我想你只需要一个按钮即可。

我做了一个customView,在里面放置了一个透明的按钮。这个观点我添加到单元格:

CustomDisclosureArea *disArea = [[CustomDisclosureArea alloc] init]; 
[disArea setFrame:CGRectMake(280.0f, 0.0f, 40.0f, 71.0f)]; 
[disArea setTag:DISCLOSURE_ID]; 
[disArea.emptyButton addTarget:self action:@selector(cellButtonHandler:event:) forControlEvents:UIControlEventTouchUpInside]; //this the button inside the view. 
[cell.contentView addSubview:disArea]; 
[disArea switchToState:AreaStateBlank]; //I can set it to different states (blank, checkmark, empty etc. 
[disArea release]; 

现在,当被窃听的accessoryView的是一个有点特殊的,因为我们需要知道哪些细胞被窃听所调用的方法。

- (void) cellButtonHandler:(id)sender event:(id)event { 

    NSSet *touches = [event allTouches]; 
    UITouch *touch = [touches anyObject]; 
    CGPoint currentTouchPosition = [touch locationInView:self.tableView]; 
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition]; 
} 

但你最终的NSIndexPath,这是一样的,你会在didSelectRow或与accessoryButtonTapped方法获得。

希望这会帮助,如果你决定做一个自定义的accessoryView的:)

+0

非常感谢。 像这些零件让我想知道为什么苹果不吃自己的食物,并在我设置风格时填充accessoryView。 ;-) – Sebastian 2010-03-04 10:58:35

0

我还没有尝试过,但它可能是可以简单地询问了小区的物业accessoryView并找到对号和替换另一个图像(它几乎肯定是一个图像)。我认为,单元格样式只是一个默认样式的表格单元格,其中包含复选标记的图像单元格。

+0

如果你自己没有明确设置它,那么accessoryView就是零。如果设置为 ,那么accessoryType将被忽略。 – Sebastian 2010-03-04 11:01:32

+0

无赖。我希望它可能更简单。 – TechZen 2010-03-04 13:25:01