0
所以我成立了一个的UIImageView和标签,并把它们放在一起,以一个单一的UIView(如下图所示我的图片)与渲染UIView的问题来的UIImage
而且我做了以下渲染这个视图到UIImage,并分享它会带来UIActivityViewController。
@IBOutlet var viewBack: UIView!
@IBOutlet var dismissButton: UIButton!
@IBOutlet var shareButton: UIButton!
@IBOutlet var imageView: UIImageView!
@IBOutlet var hello: UILabel!
var image = UIImage()
override func viewDidLoad() {
super.viewDidLoad()
shareButton.backgroundColor = UIColor.grayColor()
shareButton.setTitleColor(UIColor.whiteColor(), forState: .Normal)
shareButton.layer.cornerRadius = 10
// Do any additional setup after loading the view.
dismissButton.backgroundColor = UIColor.grayColor()
dismissButton.layer.cornerRadius = 10
viewBack.backgroundColor = UIColor(white: 1, alpha: 0.0)
UIGraphicsBeginImageContextWithOptions(viewBack.bounds.size, viewBack.opaque, 0.0)
viewBack.drawViewHierarchyInRect(viewBack.bounds, afterScreenUpdates: false)
imageView.drawViewHierarchyInRect(imageView.frame, afterScreenUpdates: false)
hello.drawViewHierarchyInRect(hello.frame, afterScreenUpdates: false)
let snapshotImageFromMyView = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
print(snapshotImageFromMyView)
image = snapshotImageFromMyView
}
@IBAction func dismiss(sender: AnyObject) {
dismissViewControllerAnimated(true, completion: nil)
}
@IBAction func share(sender: AnyObject) {
var shareArray : [AnyObject] = []
shareArray.append(image)
let activityVC = UIActivityViewController(activityItems: shareArray, applicationActivities: nil)
if let popover = activityVC.popoverPresentationController{
popover.sourceView = sender as? UIView
popover.sourceRect = sender.bounds
}
self.presentViewController(activityVC, animated: true, completion: nil)
}
所以viewBack是UIView包含两个子视图--UIImage和标签。而且似乎是我正常设置了所有的渲染过程。但是当我真的分享它时,结果真的很奇怪,一张黑色的图片。显然,我将图像视图设置为特定图像,并且标签也不是空的。我不知道这里有什么问题,希望有人能帮助我。提前致谢。
问题解决!不胜感激 –