在iPad mini iOS 8上运行iPhone应用程序会导致UIActivityViewController中的图标大小错误
我有一个iPhone应用程序(不支持通用)在iPad mini iOS 8上运行。但我发现UIActivityViewController中的图标大小不正确。如何解决这个问题 只需初始化默认UIActivityViewController,即可重现此问题在iPad mini iOS 8上运行iPhone应用程序会导致UIActivityViewController中的图标大小错误,ios,iphone,ios8,uiactivityviewcontroller,ipad-mini,Ios,Iphone,Ios8,Uiactivityviewcontroller,Ipad Mini,我有一个iPhone应用程序(不支持通用)在iPad mini iOS 8上运行。但我发现UIActivityViewController中的图标大小不正确。如何解决这个问题 只需初始化默认UIActivityViewController,即可重现此问题 UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:@[@"hello"] applicationActivities:
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:@[@"hello"] applicationActivities:nil];
[self presentViewController:avc animated:YES completion:nil];
错误行为如下所示:
您可能使用的图像尺寸太大,无法适应此区域,请尝试使用具有
1x
和2x
的多尺寸图像,这可以解决您的问题,例如,将同一图像转换为两种尺寸的徽标,30x30和60x60,并将其命名为
30x30图标显示为->sampleLogo.png
60x60图标显示为->sampleLogo@2x.png
在Images.xcsets
中以相同的名称(而不是两个不同的图像)导入这些文件,然后尝试使用此文件
编辑:
30x30和60x60只是给你一个想法,而且如果你的应用程序与iPhone 6 Plus兼容,那么你可能还需要使用一个
3x
图像,在给定的示例中是90x90你可能使用的图像尺寸太大,不适合这个区域,试着使用多尺寸图像和1x
,和2x
这可以解决您的问题,例如,将相同的图像转换为两种尺寸的徽标,30x30和60x60,并将它们命名为
30x30图标显示为->sampleLogo.png
60x60图标显示为->sampleLogo@2x.png
在Images.xcsets
中以相同的名称(而不是两个不同的图像)导入这些文件,然后尝试使用此文件
编辑:
30x30和60x60只是给你一个想法,而且如果你的应用程序与iPhone 6 Plus兼容,那么你可能还需要使用一个
3x
图像,在给定的示例中是90x90你可能使用的图像尺寸太大,不适合这个区域,试着使用多尺寸图像和1x
,和2x
这可以解决您的问题,例如,将相同的图像转换为两种尺寸的徽标,30x30和60x60,并将它们命名为
30x30图标显示为->sampleLogo.png
60x60图标显示为->sampleLogo@2x.png
在Images.xcsets
中以相同的名称(而不是两个不同的图像)导入这些文件,然后尝试使用此文件
编辑:
30x30和60x60只是给你一个想法,而且如果你的应用程序与iPhone 6 Plus兼容,那么你可能还需要使用一个
3x
图像,在给定的示例中是90x90你可能使用的图像尺寸太大,不适合这个区域,试着使用多尺寸图像和1x
,和2x
这可以解决您的问题,例如,将相同的图像转换为两种尺寸的徽标,30x30和60x60,并将它们命名为
30x30图标显示为->sampleLogo.png
60x60图标显示为->sampleLogo@2x.png
在Images.xcsets
中以相同的名称(而不是两个不同的图像)导入这些文件,然后尝试使用此文件
编辑:
30x30和60x60只是给您一个想法,而且如果您的应用程序与iPhone 6 Plus兼容,那么您可能还需要使用一个在给定示例中为90x90的3x
图像。这里有三件事需要注意:
iOS 7
120px 120px
非常合适
注意:此大小还考虑了图标填充
iOS 8
240px 240px
,但您可以应用自定义大小的图像,因为如果图像太小/太大,系统将自动缩放以填充图像
收尾 也就是说,如果你想同时支持iOS 7和iOS 8,你必须有两个版本的自定义
UIActivity
图标图像
对于iOS 7您应该使用120px 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这里有三件事需要注意:
iOS 7
120px 120px
非常合适
注意:此大小还考虑了图标填充
iOS 8