我需要显示来自另一个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
需要做什么?
应该在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
}
答案 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!