【问题标题】:Why Swift Custom UIActivity icon image not displaying, while Objective-C correct displaying?为什么 Swift 自定义 UIActivity 图标图像不显示,而 Objective-C 正确显示?
【发布时间】:2018-03-23 06:00:36
【问题描述】:

这个问题与an existing one有关,但我不明白执行的区别。

Myproject开发环境是XCode 8.3,Swift 3和Bridging Objc,iOS 9.0以上。

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

当UIActivity的category是Swift中的action时,activity的图标是有问题的。

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

这不是显示图像。

override class var activityCategory: UIActivityCategory {
    return .action
}

override var activityImage: UIImage? {
    return UIImage(named: "ic_facebook")
}

案例 2。 Swift CustomActivity,类别类型为share。

这是显示图像。

override class var activityCategory: UIActivityCategory {
    return .share
}

override var activityImage: UIImage? {
    return UIImage(named: "ic_facebook")
}

案例 3。 Objective-C 自定义活动

在 Objc 中,覆盖实例变量是正确执行的。

+ (UIActivityCategory) activityCategory
{
    return UIActivityCategoryAction;
}

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

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

在 Swift 中,这是不可用的工具吗?

有什么区别??

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    来自UIActivity activityImage的文档:

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

    本文档缺少的是,这仅适用于 activityCategory 设置为 UIActivityCategoryAction (.action) 的情况。它曾经也适用于UIActivityCategoryShared (.shared),直到它在早期版本的 iOS 中发生了变化(我认为它在 iOS 8 中发生了变化)。

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

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

    【讨论】:

    • 您的回答谢谢。 ^^ 我已经是- (UIImage *) activityImage. 这个结果与Case1 相同。所以我引用了这个链接。 Reference Link不明白,- (UIImage *) _activityImage- (UIImage *) activityImage执行的区别是什么...
    • 你不应该覆盖_activityImage,只是activityImage。带有下划线的那个是一个可怕的 hack,可能会在以后的任何 iOS 更新中中断。你应该得到.action 的灰色图像。和.shared 的彩色图像。
    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多