#ios #swift #uiimage #uiactivitycontroller
Вопрос:
Как добавить изображение в обведенную часть 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: [])
Что не работает, так что не знаю, как это сделать
Комментарии:
1. Посмотрите, что произойдет после включения URL-адреса в
activityItems
.2. @ElTomato Да, я пробовал, надо было сказать об этом в посте. Результат тот же, но изображение также доступно по ссылке
3. Ну, это работает для меня, если у меня есть массив объектов изображений и URL, как
activityItems
.4. @ElTomato это странно. Для меня он разделяет изображение, но изображение не отображается в той обведенной части снимка экрана
5. @ElTomato можете ли вы опубликовать свой массив действий?
Ответ №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
?
Комментарии:
1. странно, это не работало на меня
2. вы можете проверить
view hierarchy
, чтобы выполнить отладку3. вам нужно обратить внимание на изображение src
uLogo.png
4. да, я заметил изображение src, оно должно быть png?
5. нет, просто обычный образ