如何从iphonesdk中提取uibarbuttonite图标?

如何从iphonesdk中提取uibarbuttonite图标?,iphone,Iphone,我想从iphonesdk中提取默认的uibarbuttonite图标。我想它们可能存储在iPhoneSimulator平台上,只作为alpha通道PNG,但我还没有找到它 我要找的是UIBarbuttonSystemReply。(对于那些怀疑有有效用例的人,我希望在一个表行标题上使用它,用户可以按行发布回复)我不知道怎么做,但是几个月前我对同样的事情很好奇。通过在UIView中循环所有元素并转储NSImage,您可以初始化此UIBarButtonim并从中提取图像。我不知道该怎么做,但我记得Er

我想从iphonesdk中提取默认的uibarbuttonite图标。我想它们可能存储在iPhoneSimulator平台上,只作为alpha通道PNG,但我还没有找到它


我要找的是UIBarbuttonSystemReply。(对于那些怀疑有有效用例的人,我希望在一个表行标题上使用它,用户可以按行发布回复)

我不知道怎么做,但是几个月前我对同样的事情很好奇。通过在UIView中循环所有元素并转储NSImage,您可以初始化此UIBarButtonim并从中提取图像。我不知道该怎么做,但我记得Erica Sadun写过一篇关于使用全屏摄像机图像的文章。我不允许添加到它的链接,所以只需在谷歌上搜索“erica sadun全屏相机”。

另一个.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
要复制所有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/
=>是目标目录

这是一个旧线程,但我在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];
            }
        }
    }
}
-(void)视图显示:(BOOL)动画{
UIView*v1=self.navigationController.navigationBar;
对于(int i=0;i

}

请参见此处,以获取另一个适用于iOS 4.3文件的工具,正如我在下面未被接受的答案中的评论中提到的,我做到了:在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/D中‌‌​​eveloper/SDKs文件夹,我做到了:
find-iname“*.png*”-print0-exec cp{}~/tmp\+1这在bash中工作;要在tcsh下使用它,请注意,您需要在两组大括号周围加上单引号:
'{}
从Mac OS 10.8开始,SDK目录移动到
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator。platform/Developer/SDK
对我不起作用(它只是一次又一次地复制并替换了每个图像,因此,最后我只剩下一个图像,没有扩展,这是最后一个复制的图像)因此,在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/D中‌​eveloper/SDKs文件夹,我做了:
find.-iname“*.png*”-print0-exec cp{}~/tmp\;