【问题标题】:Add Image to UIActivityController将图像添加到 UIActivityController
【发布时间】:2021-12-01 10:42:53
【问题描述】:

如何在UIActivityController 的圆圈部分添加图片?我不需要它包含在共享部分中,我想在此处添加它。我试过了:

ac.tabBarItem.image = UIImage(named: "uLogo")

let items:[Any] = [UIImage(named: "uLogo"), "What do you think of my Take on the uSTADIUM App? Sign up so you can bet with or against me!", url]
let ac = UIActivityViewController(activityItems: items, applicationActivities: [])

这不起作用,所以不知道该怎么做

【问题讨论】:

  • 查看在activityItems 中包含 URL 后会发生什么。
  • @ElTomato 是的,我试过了,应该在帖子中这么说。结果是一样的,但是图片也是用链接分享的
  • 好吧,如果我有一组图像和 url 对象作为activityItems,它对我有用。
  • @ElTomato 这很奇怪。对我来说,它共享图像,但图像没有显示在屏幕截图中的圆圈部分
  • @ElTomato 你能发布你的活动数组吗?

标签: ios swift uiimage uiactivitycontroller


【解决方案1】:

你可以尝试自定义UIActivityViewController

class ActivityCtrl: UIActivityViewController{
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        if let cls = NSClassFromString("LPImageView"), let base = getBase(for: view, cls){
            for sub in base.subviews{
                if let img = sub as? UIImageView{
                    img.image = UIImage(named: "uLogo.png")
                    break
                }
            }
        }
    }
    
    
    
    func getBase(for v: UIView?, _ cls: AnyClass) -> UIView?{
           guard let vue = v else{ return nil }
           var result: UIView?
           for sub in vue.subviews{
               if sub.isKind(of: cls){
                   return sub
               }
               else {
                   result = getBase(for: sub, cls)
                   if result != nil{
                       return result
                   }
               }
           }
           return result
       }
}

用法:

if let url = URL(string: "https://www.baidu.com"), let img = UIImage(named: "uLogo"){
            let items:[Any] = [img, "What do you think of my Take on the uSTADIUM App? Sign up so you can bet with or against me!", url]
            let ac = ActivityCtrl(activityItems: items, applicationActivities: [])
            present(ac, animated: true){ }
        }

结果:


我怎么知道LPImageView

【讨论】:

  • 奇怪,不是为我工作
  • 可以查看view hierarchy进行调试
  • 你需要注意图片src uLogo.png
  • 是的,我注意到图像 src,它必须是 png 吗?
  • 没有。只是一张普通的图片
猜你喜欢
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 2011-06-27
  • 2013-08-04
  • 2012-10-27
  • 2018-08-22
  • 2015-08-22
相关资源
最近更新 更多