簡體   English   中英

在iPad mini iOS 8上運行iPhone應用程序會導致UIActivityViewController中的圖標大小錯誤

[英]Running iPhone app on iPad mini iOS 8 results in wrong icon size in UIActivityViewController

我在iPad mini iOS 8上運行了一個iPhone應用程序(不支持Universal)。但是我發現UIActivityViewController中的圖標大小不正確。 如何解決呢?

只需初始化默認的UIActivityViewController即可重現該問題。

UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:@[@"hello"] applicationActivities:nil];
[self presentViewController:avc animated:YES completion:nil];

錯誤行為如下: https : //drive.google.com/file/d/0B2C5utygT1vHSnlGUzRVdU5YSTA/view?usp=sharing

這里有3件事情要注意:

  1. 圖片背景
  2. 圖像不透明
  3. 圖片大小。

IOS 7

  1. 圖片背景

圖像背景應該是透明的。

  1. 圖像不透明

圖標的“可見部分”應該是非透明的,也就是不透明的。 請注意,任何顏色信息都不會保留

  1. 圖片大小

如果圖像太小/太大系統將無法縮放圖像 ,因此必須提供適當大小的圖像。 我發現圖像尺寸為120px x 120px非常適合。

注意:此大小也要考慮圖標填充。


iOS 8

  1. 圖片背景

圖像背景應為白色以匹配系統UIAction圖標,但您也可以使用任意顏色。

  1. 圖像不透明

與iOS 7中的一樣,圖標的“可見”部分應為非透明(即不透明),但是在iOS 8中, 顏色信息將被保留

  1. 圖片大小

我正在使用尺寸為240px x 240px ,但是您可以應用自定義尺寸的圖片,因為如果圖片太小或太大,系統都會自動縮放以填充圖片


包起來

也就是說,如果要同時支持iOS 7和iOS 8,則必須具有2個版本的自定義UIActivity圖標圖像。

對於iOS 7,您應該使用具有透明背景的 120px x 120px大小的圖像。 注意:找到最適合您需求的尺寸。

對於iOS 8,您應該使用具有白色背景和任意顏色“可見”部分的自定義尺寸正方形圖像。

代碼示例

#define isAtLeastiOS8 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)


- (UIImage *)activityImage
{
    if (isAtLeastiOS8)
    {
        return [UIImage imageNamed:@"activity_icon_ios8"];
    }
    else
    {
        return [UIImage imageNamed:@"activity_icon"];
    }
}

希望有幫助!

歸功於@damirstuhec

您可能使用的圖像尺寸太大,無法適合該區域,請嘗試使用1x2x多尺寸圖像,這樣可以解決您的問題,例如將同一圖像轉換為徽標,30x30和60x60和名稱的2種尺寸他們作為

30x30圖標變為-> sampleLogo.png

60x60圖標變為-> sampleLogo@2x.png

將這些文件以相同的名稱(不是兩個不同的圖像)導入到Images.xcassets ,然后嘗試使用它。

編輯:30x30和60x60只是為了給您一個想法,如果您的應用程序與iPhone 6 Plus兼容,那么您可能還需要使用給定示例中的90x90的3x圖像

這些圖像需要具有透明的背景,我建議使用以下尺寸:// iPadShare @ 2x應該為126像素,iPadShare應該為53像素,iPhoneShare @ 2x應該為100像素,iPhoneShare應該為50像素。 我發現這些尺寸可以滿足我的需求。

希望這會有所幫助:)

暫無
暫無

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

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