关于iPhone:如何访问UITableViewCellAccessoryDisclosureIndicator的图像文件?

How do I access the image file for the UITableViewCellAccessoryDisclosureIndicator?

我正在尝试制作一个自定义UITableViewCellAccessoryDisclosureIndicator,它比普通指示器大一点,并且颜色不同。 我想知道是否有人可以告诉我如何访问指示器和高亮指示器所在的文件?

或者,如果有办法以编程方式完成此操作,我也很想听听。 谢谢!


我相信最常见的UIKit元素在UIKit.framework / Other.artwork中。 .artwork文件本质上只是BGRA中的原始像素数据,以完成您通常需要图像偏移量/大小的任何有用的事情。

相反,从SDK获取随机图像的最简单方法通常是在位图上下文中渲染图层(如果只是CGImage,则获取CALayer.contents)并将其写为PNG。首先,您必须为表单元格找到正确的层,我将断点-tableView:didSelectRowAtIndexPath:,调用[tableView cellForRowAtIndexPath:indexPath]来获取单元格,并查看其子视图,直到为披露指示器找到大小合适的东西为止。然后,只需拨打类似

1
2
3
4
5
6
7
8
9
10
11
-(void)dumpLayerAsPNG:(CALayer*)layer
{
  UIGraphicsBeginImageContextWithOptions(layer.bounds.size, 0, 0);
  [layer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  NSData * imgData = UIImagePNGRepresentation(img);
  NSString * docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];
  NSString * filename = @"foo.png";
  [imgData writeToFile:[docsDir stringByAppendingPathComponent:filename] atomically:NO];
}


因为它是系统类型,所以不能直接访问它,但是可以通过创建自定义视图并使用accessoryView(或editingAccessoryView)属性进行设置来设置自己的自定义指标。


实际上,我想我把这个问题说错了。我基本上只是在寻找公开指标的图像文件,以便可以对其进行编辑。我发现了这一点:http://www.google.com/imgres?q=UITableview+disclosure+indicator&um=1&hl=zh-CN&sa=N&biw=1280&bih=577&tbm=isch&tbnid=bmE9FbJw6SMJJM:&imgrefurl=http://www.tech-recipes。 com / rx / 3357 / iphone-programming-set-uitableview-accessory-arrow-style /&docid = T9TugtqFzb-3bM&w = 50&h = 50&ei = 7m2PTunuAq-DsALk2ISvAQ&zoom = 1&iact = rc&dur = 374&page = 1&tbnh = 50& 1t:429,r:1,s:0&tx = 20&ty = 12