iOS 自定义共享扩展:加载所选图像
iOS custom share extension: load selected image
我正在为我的应用程序开发共享扩展程序,以便能够使用它直接从库中共享图像。我有一个视图控制器和布局设置,但我正在努力让所选图像显示在视图控制器内的 UIImageView
中。
目前,我的getImage()
如下:
func getImage() {
if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in
if let item = imageData as? Data {
self.imageView.image = UIImage(data: item)
}
}
}
}
}
...但图片未加载。我在这里做错了什么?
找到问题了。结果我需要先做一个类型标识符一致性检查:
func getImage() {
if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
// This line was missing
if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeJPEG as String) {
itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in
if let item = imageData as? Data {
self.imageView.image = UIImage(data: item)
}
}
}
}
}
}
我正在为我的应用程序开发共享扩展程序,以便能够使用它直接从库中共享图像。我有一个视图控制器和布局设置,但我正在努力让所选图像显示在视图控制器内的 UIImageView
中。
目前,我的getImage()
如下:
func getImage() {
if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in
if let item = imageData as? Data {
self.imageView.image = UIImage(data: item)
}
}
}
}
}
...但图片未加载。我在这里做错了什么?
找到问题了。结果我需要先做一个类型标识符一致性检查:
func getImage() {
if let inputItem = extensionContext!.inputItems.first as? NSExtensionItem {
if let itemProvider = inputItem.attachments?.first as? NSItemProvider {
// This line was missing
if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeJPEG as String) {
itemProvider.loadItem(forTypeIdentifier: kUTTypeJPEG as String) { [unowned self] (imageData, error) in
if let item = imageData as? Data {
self.imageView.image = UIImage(data: item)
}
}
}
}
}
}