有没有办法将默认的UITableViewCellAccessoryDetailDisclosureButton
附件按钮从蓝色变为黑色?
答案 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];