黑色UITableViewCell DetailDisclosure配件按钮?

时间:2009-07-15 07:59:59

标签: ios iphone objective-c uitableview

有没有办法将默认的UITableViewCellAccessoryDetailDisclosureButton附件按钮从蓝色变为黑色?

3 个答案:

答案 0 :(得分:13)

没有一个“标准”的黑色,但要做你所要求的并不是那么多工作。

创建(在Photoshop或类似的地方)您自己的黑色版本的详细信息披露按钮。如果这更容易,您可以屏幕抓取并为其着色。然后将它作为资源添加到项目中,并将其放在UIImage中,如下所示:

UIImage myImage = [UIImage imageNamed:@"blackbutton.png"];

然后创建一个包含该图像的UIImageView:

UIImageView *imageView = [[UIImageView alloc] initWithImage:myImage];

最后,您可以将其分配给您已经设置的单元格的“附件视图”:

[cell setAccessoryView:imageView];

希望有所帮助!

//编辑 - 我觉得在Photoshop中快速5分钟,所以为你创建了一个黑色的。玩得开心!

删除了死亡的ImageShack链接

答案 1 :(得分:1)

来自h4xxr的答案在iOS 5.1.1中并不完全适用于我(点击附件视图没有调用tableView:accessoryButtonTappedForRowWithIndexPath方法),所以我在这个相关的{{的帮助下改变了他的解决方案3}},使用带有图片的UIButton而非UIView,如果点击则可以调用自定义选择器:

UIImage *myImage = [UIImage imageNamed:@"blackaccessorybutton.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, myImage.size.width, myImage.size.height);
[button setImage:myImage forState:UIControlStateNormal];
[button addTarget: self
           action: @selector(toggleCustomDetailDisclosureButton:)
 forControlEvents: UIControlEventTouchUpInside];
[cell setAccessoryView:button];

答案 2 :(得分:1)

iOS7上有一个更简单的解决方案。使用tintColor上的UIView媒体资源。子类通常倾向于尊​​重它,并且披露指标也不例外。

UIView *v = [[cell subviews] lastObject];
        v = v.subviews.count ? [v.subviews objectAtIndex:0] : nil; // v is the disclosure indicator
        if ([v respondsToSelector:@selector(setTintColor:)])
            v.tintColor = [UIColor greenColor];