Ios 为什么Swift自定义UIActivity图标图像不显示,而Objective-C正确显示?
这个问题与执行有关,但我不理解执行的不同之处 我的项目开发环境是XCode 8.3、Swift 3和桥接Objc、iOS 9.0以上版本 我想在第二行显示活动图像 当UIActivity的类别是Swift中的action时,活动图标就是问题 案例1。Swift CustomActivity,类别类型为action。 这不是显示图像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
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
的彩色图像。