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和標籤。而且似乎是我正常設置了所有的渲染過程。但是當我真的分享它時,結果真的很奇怪,一張黑色的圖片。顯然,我將圖像視圖設置爲特定圖像,並且標籤也不是空的。我不知道這裏有什麼問題,希望有人能幫助我。提前致謝。
問題解決!不勝感激 –