簡體   English   中英

您如何為操作擴展提供圖標?

[英]How do you provide an icon for an action extension?

除操作擴展外,所有擴展類型都使用包含應用程序的圖標。 Apple 文檔是這樣說的:

在 iOS 中,自定義操作擴展使用其包含應用程序圖標的模板圖像版本,您必須提供該圖標。

但是,它並沒有說明您必須如何提供圖標。 它說:

有關如何向應用程序擴展添加圖標的信息,請參閱創建資產目錄和添加應用程序圖標集或啟動圖像集。

但是“創建資產目錄”和“添加應用程序圖標”文檔的鏈接是指向如何為應用程序<\/em>添加圖標的鏈接,它們不包含有關如何專門為操作擴展添加圖標的部分。

擴展目標在 XCode 常規設置中不包含應用程序圖標部分(與應用程序不同),因此它的圖標可能必須通過資產目錄添加。 但是,即使在我將應用程序圖標圖像集添加到我的擴展程序的資產目錄之后,擴展程序的圖標仍然沒有出現。

我應該如何為操作擴展添加圖標? 如果它是通過它的資產目錄,那么為什么當我將圖標圖像集添加到資產目錄時它不起作用?

首先,您需要有一個資產目錄。 你可能已經有了這個,但如果你沒有,這很容易創建。

  1. 單擊包含擴展文件的組。

  2. 文件菜單中,選擇新建 > 文件...。

  3. 在 iOS 部分,單擊Asset Catalog ,然后單擊Next


其次,我們需要將應用程序圖標添加到我們的項目中。 請注意,圖標必須具有透明背景 如果您嘗試使用具有純色背景的圖標,iOS 將不會顯示該圖標。

  1. 單擊+按鈕並選擇App Icons & Launch Images > New iOS App Icon

    在此處輸入圖片說明

  2. 默認情況下,Xcode 將調用圖標AppIcon但它也會警告您該名稱正在使用中。 要刪除此警告,請選擇一個不同的名稱(例如AppIconExtension-iOS )。

  3. 將您的圖標拖到 60px 占位符中。 您還需要 120x120(又名 @2x)和 180x180px(又名 @3x)的圖標。 如果需要,您可以創建其他圖標,但這些不是必需的。

    在此處輸入圖片說明


第三,您需要告訴 Xcode 在構建擴展時使用該圖標。

  1. 在項目導航器中,在樹的頂部選擇您的項目。

  2. 選擇您的擴展作為目標並選擇Build Settings

  3. 搜索Asset Catalog App Icon Set Name並輸入您的圖標名稱。

    在此處輸入圖片說明

  4. 構建並運行擴展。

為了讓它工作,將資產添加到資產目錄是不夠的 - 還需要設置擴展的構建設置部分的資產目錄編譯器選項,以指定資產目錄中設置的應用程序圖標的名稱:

在此處輸入圖片說明

我們需要一個用於擴展應用程序的單色圖標,它的尺寸和類型與我們在 Appicon 上設置的完全相同(只有名稱和圖標類型不同)。 首先,我們需要將資產包含到擴展目標中

步驟 1:- 要添加資產,請單擊擴展方案-> 構建階段 -> 復制捆綁資源 -> 單擊 + -> 添加資產或只需單擊擴展目標成員資格中的資產即可添加。

請參閱下面的屏幕截圖

在此處輸入圖片說明

在此處輸入圖片說明

第 2 步:- 現在要設置擴展應用程序圖標,從目標區域單擊擴展應用程序,轉到構建設置 -> 搜索資產目錄編譯器選項 -> 輸入您的應用程序圖標名稱

請參閱下面的屏幕截圖

請參閱下面的屏幕截圖

動作擴展圖標的文檔並不是特別有用——試試這個答案,它提供了一個有效的例子,或者這個答案加上聊天中繼續的討論。

對於圖標本身, 目前的指導如下:

使用模板圖像作為操作擴展圖標。 模板圖像使用蒙版來創建圖標。 使用具有適當透明度和抗鋸齒的黑色和白色,並且不要包含陰影。 模板圖像應該在一個大約 70 像素 x 70 像素的區域中居中。

試圖解決這個問題時遇到了很多麻煩,但我最終找到了一個解決方法(我不喜歡它,但它有效):

我最終安裝了最新版本的Xcode 7 我用 Xcode 7 打開了我的項目,然后我按照這個答案中提供的步驟操作: https : //stackoverflow.com/a/27333408/3844377

然后我從Xcode 8運行我的項目,它就像一個魅力。

對於 Xcode 15,擴展的 Build Settings 部分中的鍵已更改為“ Primary App Icon Set Name<\/code> ”

"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM