Как извлечь иконки UIBarButtonItem из iPhone SDK? - PullRequest
9 голосов
/ 25 мая 2009

Я бы хотел извлечь значки UIBarButtonItem по умолчанию из iPhone SDK. Я предполагаю, что они, вероятно, хранятся в платформе iPhoneSimulator как PNG только для альфа-канала, но я еще не нашел его.

Я ищу UIBarButtonSystemItemReply. (Для тех, кто подозревает, что для этого есть даже допустимый вариант использования, я ищу использовать его в заголовке строки таблицы, где пользователь может публиковать ответы по строкам)

Ответы [ 4 ]

17 голосов
/ 07 марта 2012

Чтобы скопировать все системные значки iPhone (или MacOS), перейдите в каталог:

cd /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ 

=> Возможно, существует более одной версии iPhoneSimulator (iPhoneSimulator4.3.sdk), просто выберите ту, которую вы предпочитаете. А затем выполните следующую команду:

find . -iname "*.png*" -print0 | xargs -I{} -0 cp -v {} /tmp/iPhoneIcons/

/tmp/iPhoneIcons/ => это каталог назначения

4 голосов
/ 03 августа 2009

Файл Other.artwork находится в /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/ (необходим SDK).

Используйте программу «iPhoneShop-1.3.jar» - в настоящее время доступно здесь , чтобы извлечь все изображения в каталог.

java -jar iPhoneShop-1.3.jar ARTWORK Other.artwork EXPORT Other
1 голос
/ 25 мая 2009

Я не знаю, как это сделать, однако мне было любопытно то же самое несколько месяцев назад. Возможно, вы сможете инициализировать этот UIBarButtonItem и извлечь из него изображение, просматривая все элементы в его UIView и сбрасывая NSImages. Я не уверен, как именно это сделать, но я помню, что Эрика Садун написала статью об использовании полноэкранного изображения с камеры. Мне не разрешено добавлять ссылку на него, так что просто Google для "полноэкранная камера Эрика Садун".

0 голосов
/ 05 сентября 2013

Это старая ветка, но я нашел ее в Google. Я успешно извлек изображения из UIBarButtonItems, инициализированных с системными элементами, используя код ниже. Все программы-экстракторы не делали этого на iOS 6 или были слишком сложными для меня. Поскольку мне нужно было всего 5-6 изображений, я просто получил их вручную.

- (void)viewDidAppear:(BOOL)animated {

UIView *v1 = self.navigationController.navigationBar;
for (int i = 0; i < v1.subviews.count; i++)
{
    UIView *v2 = [v1.subviews objectAtIndex:i];
    NSLog(@"%i %@", i, [v2 class]);
    if (i == 2)
    {
        for (int j = 0; j < v2.subviews.count; j++)
        {
            UIView *v3 = [v2.subviews objectAtIndex:j];
            NSLog(@"  %i %@", j, [v3 class]);

            if (j == 1)
            {
                // In my test, this view was UIImageView containing button image
                UIImageView *iv = [[UIImageView alloc] initWithImage:((UIImageView *)v3).image];
                [self.view addSubview:iv];
            }
        }
    }
}

}

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