ScrollView无法显示从另一个VC传递的图像

时间:2015-06-10 14:27:35

标签: ios swift

我需要显示来自另一个ViewController

的图片传入

首先,我仅使用ImageView进行测试以显示图片,其工作原理如下:

感谢。非常感谢您的帮助。

class ViewController: UIViewController, UIScrollViewDelegate {

    @IBOutlet weak var TempImgView: UIImgeView!
    var passInImg: UIImage?

    override func viewDidLoad() {

        super.viewDidLoad()

       TempImgView.image = passInImg!

   }

当我使用UIScrollView(用于滚动大型passInImg)时,下面的代码无法正常工作

万阿英,蒋达清:

  

错误:致命错误:在打开时意外发现nil   可选值

但是我已经在上面的代码中测试了传入图像。

scrollView需要做什么?

  1. 应该在viewDidLoad

    中使用

    类ViewController:UIViewController,UIScrollViewDelegate {

    @IBOutlet weak var myUIScrollView: UIScrollView!
    
    var myImgView: UIImageView!
    var passInImg: UIImage?
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
    
        self.myUIScrollView.maximumZoomScale = 10.0
    
        self.myUIScrollView.minimumZoomScale = 1.0
    
        self.myUIScrollView.delegate = self
    
        myImgView.image = passInImg!
    
        self.myUIScrollView.addSubview(myImgView)
    
    }
    
    
    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
    
        return myImgView
    }
    

3 个答案:

答案 0 :(得分:0)

首先检查myUIScrollView是否连接到故事板中的插座,并在使用可选变量之前始终检查:

SafeHtmlBuilder

答案 1 :(得分:0)

在设置图片之前,请initialize myImgView带框架。

它会返回nil,因为myImgView不是initalize

myImgView  = UIImageView(frame:CGRectMake(10, 50, 100, 300));

它对我有用。希望它会对你有所帮助。谢谢

答案 2 :(得分:0)

区别在于您声明UIImageView的方式。 在第一种情况下:

@IBOutlet weak var TempImgView: UIImageView!

TempImgView@IBOutlet,因此每当加载故事板视图/ xib时都会初始化。

但是当您使用scrollview时,您已将UIImageView声明为类变量,而不是@IBOutlet

var myImgView: UIImageView!

在尝试访问它之前必须先进行初始化。 尝试:

myImgView = UIImageView()
myImgView.image = passInImg!