2014-09-02 19 views
3

我正在處理的iOS應用程序導出UTI。在Info.plist這個樣子的相關部分:在UIDocumentPickerViewController中顯示自定義UTI的圖標

<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.xml</string> 
      <string>public.data</string> 
     </array> 
     <key>UTTypeDescription</key> 
     <string>GPX Document</string> 
     <key>UTTypeIdentifier</key> 
     <string>de.company.app.gpx</string> 
     <key>UTTypeSize320IconFile</key> 
     <string>Doc320.png</string> 
     <key>UTTypeSize64IconFile</key> 
     <string>Doc64.png</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <array> 
       <string>gpx</string> 
      </array> 
     </dict> 
    </dict> 
</array> 

我希望應用程序通過對話「在......打開」處理GPX文件,所以也有一個文檔類型定義(引用UTI)在相同PLIST:

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeIconFiles</key> 
     <array> 
      <string>Icon29.png</string> 
      <string>Icon58.png</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>de.company.app.gpx</string> 
     <key>CFBundleTypeRole</key> 
     <string>Editor</string> 
     <key>LSHandlerRank</key> 
     <string>Owner</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>de.company.app.gpx</string> 
     </array> 
    </dict> 
</array> 

當在Safari打開GPX文件時,它顯示一個視網膜裝置上餘CFBundleTypeIconFiles下指定的圖標,即Icon58.png。該應用程序還允許進口通過在iOS 8的推出UIDocumentPickerViewController類,並同時UTI定義在iCloud中驅動器過濾相關文件工作得很好,它不顯示我的任何特定的藝術作品:

我有確保所有參考圖像文件(Icon29.png,Icon58.png,Doc64.png,Doc320.png)確實在應用程序包的根目錄中。其名稱中的數字表示它們的像素高度。 Doc...文件是正方形,其他兩個遵循this specification(僅限iPhone)。

我有兩種基本的問題:

1)如何使我們的尿路感染的UIDocumentPickerViewController顯示自定義圖標?

2)是否有任何其他用例使用UTTypeSize64IconFileUTTypeSize320IconFile

回答

3

遺憾的是,答案是,它不能做除非你的應用程序可以控制這些文件如何寫入磁盤。在這種情況下,您可以繼承UIDocument並寫出縮略圖。 Here是蘋果工程師張貼在蘋果開發人員論壇上發佈的原始答案(需要登錄)。它包含一個代碼示例來說明它是如何完成的。

我還沒有找到答案,我的問題的第二部分。

+0

嗨。因此,聽起來像爲您自己的UTI顯示自定義圖標的「UIDocumentPickerViewController」僅適用於您控制的文件(因爲您需要編寫縮略圖)。如果用戶瀏覽iCloud來說出他們共享的iCloud〜/ desktop文件夾,並發現由另一個應用程序編寫的.gpx文件,那麼將無法指定顯示的圖標? – Kyle 2017-10-30 14:18:48

1

我相信你在你的CFBundleTypeIconFiles鍵中使用了錯誤的大小圖標。您使用的尺寸是設置圖標。

爲了測試我的理論,請添加幾個不同大小的文件。再加上所有圖標都是方形的你在你的問題中的圖像看起來是矩形的。

據部分Icon and Image Design --> App Icon

文檔圖標

如果您的iOS應用程序創建一個自定義類型的文件,你希望用戶 能夠一目瞭然地識別這些文件。您無需爲此設計一個自定義圖標 ,因爲iOS使用您的應用圖標 爲您創建文檔圖標。

而摘自App Icons

應用圖標(必需)(iPhone)

  • 60×60像素
  • 120×120像素(@ 2×)

這是在iPhone上運行的應用程序的主要圖標在iOS 7及更高版本中使用iPod touch。

設置圖標(所有設備)

  • 29 X 29像素
  • 58×58個像素(@ 2X)
+0

「CFBundleTypeIconFiles」圖標的大小在[本文檔]中很清楚地記錄了(https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/TP40009249-SW9)(章節:「文檔圖標」),也在問題中鏈接:「22 x 29像素/ 44 x 58像素(高分辨率)」。他們既不是正方形也不是與設置圖標混淆。我們的應用程序中也有正常的應用程序圖標,當然,它們也不會被使用。 – hagi 2014-09-02 15:54:41

+0

幫我一個忙,並在plist中的CFBundleTypeIconFiles下列出正常的應用程序圖標。當我在家裏到我的MacBook時,我會做我自己的測試。 – 2014-09-02 16:59:43

+0

我試過了,但沒有任何結果。 – hagi 2014-09-03 09:54:15

相關問題