我正在尝试制作一个比普通指示器略大的自定义UITableViewCellAccessoryDisclosureIndicator,它是一种不同的颜色。我想知道是否有人可以告诉我如何访问指标和高位指标的文件?
或者如果有方法以编程方式完成此操作,我也有兴趣听到这个。谢谢!
答案 0 :(得分:2)
您无法直接访问披露指标,因为它是系统类型,但您可以通过创建自定义视图并使用accessoryView
(或editingAccessoryView
)进行设置来设置自己的自定义指标属性。
答案 1 :(得分:2)
我相信大多数常见的UIKit元素都在UIKit.framework / Other.artwork中。 .artwork
文件基本上只是BGRA顺序中的原始像素数据 - 要做任何有用的事情,通常需要图像偏移/尺寸。
相反,从SDK获取随机图像的最简单方法通常是在位图上下文中渲染图层(如果它只是一个CGI图像,则抓取CALayer.contents
)并将其写为PNG。首先,您必须找到正确的图层 - 对于表格单元格,我会断点-tableView:didSelectRowAtIndexPath:
,调用[tableView cellForRowAtIndexPath:indexPath]
来获取单元格,并查看其子视图,直到找到大小合适的大小为披露指标。然后,只需调用类似
-(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];
}
答案 2 :(得分:0)
实际上,我认为我的问题是错误的。我基本上只是寻找披露指标的图像文件,所以我可以编辑它。我发现了这个:http://www.google.com/imgres?q=UITableview+disclosure+indicator&um=1&hl=en&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&tbnw=50&start=0&ndsp=11&ved=1t:429,r:1,s:0&tx=20&ty=12