Ios 为什么Swift自定义UIActivity图标图像不显示,而Objective-C正确显示?

Ios 为什么Swift自定义UIActivity图标图像不显示,而Objective-C正确显示?,ios,objective-c,swift,Ios,Objective C,Swift,这个问题与执行有关,但我不理解执行的不同之处 我的项目开发环境是XCode 8.3、Swift 3和桥接Objc、iOS 9.0以上版本 我想在第二行显示活动图像 当UIActivity的类别是Swift中的action时,活动图标就是问题 案例1。Swift CustomActivity,类别类型为action。 这不是显示图像 override class var activityCategory: UIActivityCategory { return .action } ove

这个问题与执行有关,但我不理解执行的不同之处

我的项目开发环境是XCode 8.3、Swift 3和桥接Objc、iOS 9.0以上版本

我想在第二行显示活动图像

当UIActivity的类别是Swift中的action时,活动图标就是问题

案例1。Swift CustomActivity,类别类型为action。

这不是显示图像

override class var activityCategory: UIActivityCategory {
    return .action
}

override var activityImage: UIImage? {
    return UIImage(named: "ic_facebook")
}
案例2。Swift自定义活动,类别类型为共享。

这是显示图像

override class var activityCategory: UIActivityCategory {
    return .share
}

override var activityImage: UIImage? {
    return UIImage(named: "ic_facebook")
}
案例3。目标-C客户活动

在Objc中,override实例变量是正确的

+ (UIActivityCategory) activityCategory
{
    return UIActivityCategoryAction;
}

- (UIImage *) _activityImage
{
    return [UIImage imageNamed:@"ic_facebook"];
}

我不明白,为什么Objective-C实例参数是正确的

在Swift中,这是不能使用的工具吗


与UIActivity activityImage的文档有什么区别

图像的alpha通道用作遮罩,以生成呈现给用户的最终图像。图像本身中的任何颜色数据都将被忽略。不透明像素应用了一个渐变,然后将该渐变放置在标准背景的顶部。因此,完全不透明的图像将生成一个渐变填充的矩形

本文档中缺少的是,仅当
活动类别
设置为
UIActivityCategoryAction
.action
)时才适用。它过去也适用于
UIActivityCategoryShared
.shared
),直到它在早期版本的iOS中发生了变化(我认为它在iOS 8中发生了变化)

这就是为什么您的第一组Swift代码似乎不起作用。您得到的是灰色矩形,因为类型
.action
需要一个图像掩码


你的Objective-C代码很奇怪。为什么要实现
-(UIImage*)\u activityImage
而不是
-(UIImage*)activityImage
?为什么使用下划线?

来自
UIActivity activityImage
的文档:

图像的alpha通道用作遮罩,以生成呈现给用户的最终图像。图像本身中的任何颜色数据都将被忽略。不透明像素应用了一个渐变,然后将该渐变放置在标准背景的顶部。因此,完全不透明的图像将生成一个渐变填充的矩形

本文档中缺少的是,仅当
活动类别
设置为
UIActivityCategoryAction
.action
)时才适用。它过去也适用于
UIActivityCategoryShared
.shared
),直到它在早期版本的iOS中发生了变化(我认为它在iOS 8中发生了变化)

这就是为什么您的第一组Swift代码似乎不起作用。您得到的是灰色矩形,因为类型
.action
需要一个图像掩码


你的Objective-C代码很奇怪。为什么要实现
-(UIImage*)\u activityImage
而不是
-(UIImage*)activityImage
?为什么要用下划线?

谢谢你的回答。^^我已经
-(UIImage*)活动图像。
此结果与案例1相同。所以我引用了这个链接。我不明白,什么是
-(UIImage*)\u activityImage
-(UIImage*)activityImage
执行差异…你不应该覆盖
\u activityImage
,只要
activityImage
。带下划线的是一个可怕的黑客行为,可能会在将来的iOS更新中被破坏。您应该为
.action
获取灰色图像。以及
共享的彩色图像。谢谢您的回答。^^我已经
-(UIImage*)活动图像。
此结果与案例1相同。所以我引用了这个链接。我不明白,什么是
-(UIImage*)\u activityImage
-(UIImage*)activityImage
执行差异…你不应该覆盖
\u activityImage
,只要
activityImage
。带下划线的是一个可怕的黑客行为,可能会在将来的iOS更新中被破坏。您应该为
.action
获取灰色图像。以及
.shared
的彩色图像。