将相机胶卷图像导入 UIView 背景
Posted
技术标签:
【中文标题】将相机胶卷图像导入 UIView 背景【英文标题】:Importing Camera Roll Image to UIView background 【发布时间】:2015-07-17 14:05:11 【问题描述】:一个小警告:我是一个 swift 的菜鸟
我正在创建一个小型应用程序,该应用程序(最终将)允许用户在他们从 iPhone 上的相机胶卷中选择的图像上绘图。但是,我在将图像设置为 UIView (drawView) 的背景时遇到了一些麻烦。有人可以给我一些关于如何解决这个问题的指示吗?我拼凑的代码如下所示。
我的 ViewController 文件:
import UIKit
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate
@IBOutlet var drawView : AnyObject!
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
imagePicker.delegate = self
@IBAction func clearTapped()
var theDrawView: DrawView = drawView as! DrawView
theDrawView.lines = []
theDrawView.setNeedsDisplay()
let imagePicker = UIImagePickerController()
@IBAction func importImage(sender: AnyObject)
imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum
imagePicker.allowsEditing = true
self.presentViewController(imagePicker, animated: true, completion: nil)
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject])
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
drawView.backgroundImage = pickedImage
func dismissViewControllerAnimated(true, completion: nil)
func imagePickerControllerDidCancel(picker: UIImagePickerController)
dismissViewControllerAnimated(true, completion: nil)
另外,我的 drawView 有一个单独的 swift 文件,用于处理用户如何在其中绘制线条。
【问题讨论】:
【参考方案1】:您将希望将代码分开一点。现在,您似乎正在尝试在控制器中创建控制器。使用必要的委托实现一个 UIIMagePickerController 的子类(您已经有了代码,所以只需复制和粘贴):
class MyImagePicker: UIImagePickerController, UIImagePickerControllerDelegate
然后在您的视图控制器中,初始化您的图像选择器:
let myImagePicker = MyImagePicker()
调用正确的方法返回图片,将你的 UIView 的背景图片设置为该图片,然后将该视图添加为子视图:
drawView.backgroundImage = pickedImage
self.addSubview(pickedImage)
希望有效!
【讨论】:
以上是关于将相机胶卷图像导入 UIView 背景的主要内容,如果未能解决你的问题,请参考以下文章