loadPreviewImageWithOptions选项字典

时间:2015-12-23 15:55:10

标签: ios swift

我正在编写iOS应用分享扩展程序,我想获得一个大型预览图像。经过一番努力,我能够使这段代码工作:

class ShareViewController: SLComposeServiceViewController {

    // This is the result handler for the call to loadPreviewImageWithOptions        
    let imageHandler: NSItemProviderCompletionHandler = { [unowned self]
        (result: NSSecureCoding?, error: NSError!) in

        if result is UIImage
        {
            let image = result as! UIImage

            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.imageView.image = image
                self.imageView.contentMode = UIViewContentMode.ScaleAspectFill
                self.imageView.clipsToBounds = true
            })
        }
    }

    // Find the shared item and preview it.
    for item: AnyObject in self.extensionContext!.inputItems
    {
        let inputItem = item as! NSExtensionItem
        for provider: AnyObject in inputItem.attachments!
        {
            let provider = provider as! NSItemProvider

            // I want a preview image as large as the device.
            var options_dict = [NSObject:AnyObject]()
            options_dict[NSItemProviderPreferredImageSizeKey] = NSValue(CGSize: CGSize(width: 960, height:540))

            provider.loadPreviewImageWithOptions(options_dict, completionHandler: imageHandler)
        }
    }

...
}

我获得了一张图片,但其尺寸始终为84 x 79像素。从NSItemProvider documentation选项字典应该支持预览图像大小:

  

options - 键和值的字典,提供有关项目的信息,例如图像的大小。有关可能的键列表,请参阅选项词典键。

在同一页面上的选项Dictonary Key下:

  

NSItemProviderPreferredImageSizeKey -   用于指定图像尺寸的键(以像素为单位)。此键的值是包含CGSize或NSSize数据类型的NSValue对象。

有一条线索:

  

键被用于传递给NSItemProviderLoadHandler块的options参数的字典中。

所以也许我必须使用size选项调用或覆盖loadItemForTypeIdentifier,然后调用loadPreviewImageWithOptions?我现在正在尝试这个。

0 个答案:

没有答案