Как получить доступ к файлу изображения для UITableViewCellAccessoryDisclosureIndicator? - PullRequest
0 голосов
/ 06 октября 2011

Я пытаюсь создать пользовательский UITableViewCellAccessoryDisclosureIndicator, который немного больше обычного индикатора и имеет другой цвет. Мне было интересно, если кто-нибудь может сказать мне, как получить доступ к файлу, где и индикатор и подсвеченный индикатор?

Или, если есть способ сделать это программно, мне было бы интересно услышать и это. Спасибо!

Ответы [ 3 ]

2 голосов
/ 08 октября 2011

Я считаю, что наиболее распространенные элементы UIKit находятся в UIKit.framework / Other.artwork. .artwork файлы - это просто необработанные пиксельные данные в порядке BGRA & mdash; чтобы сделать что-нибудь полезное, вам, как правило, потребуются смещения / размеры изображения.

Вместо этого, самый простой способ получить случайные изображения из SDK - это обычно визуализировать слой в контексте растрового изображения (или захватить CALayer.contents, если это просто CGImage) и записать его в формате PNG. Сначала вы должны найти правильный слой & mdash; для ячейки таблицы я бы остановился на -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 голосов
/ 06 октября 2011

Вы не можете получить доступ к индикатору раскрытия напрямую, поскольку это системный тип, но вы можете установить свой собственный индикатор, создав пользовательское представление и установив его с помощью свойства accessoryView (или editingAccessoryView).

0 голосов
/ 08 октября 2011

На самом деле, я думаю, что поставил вопрос неправильно. Я просто искал файл изображения индикатора раскрытия, чтобы я мог его редактировать. Я нашел это: 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...