在另一个类的滚动视图中添加图像?

Posted

技术标签:

【中文标题】在另一个类的滚动视图中添加图像?【英文标题】:Add an image inside a scrollView from another class? 【发布时间】:2015-07-14 19:00:49 【问题描述】:

我正在尝试将图像作为子视图添加到存在于另一个类中的滚动视图出口

我确实在我的外部类中为存在 scrollView 出口的父类创建了一个对象

var imageClassName = ImageViewController()

但是当我尝试将图像添加到滚动视图时

imageClassName.scrollView.addSubview(imageView)

我收到以下错误 “致命错误:在展开可选值时意外发现 nil”

我也尝试在最后添加一个可选但仍然得到相同的错误

imageClassName.scrollView?.addSubview(imageView)

有什么线索吗?

【问题讨论】:

【参考方案1】:

这(可能)是一个常见的误解。刚开始的时候,我也遇到过这个问题。

想象一下,您不是 ios 开发人员,而是现实世界中的奇迹产品设计师。你为一个神奇的盒子设计了蓝图,让用户放入照片然后滚动浏览它(有点像神奇的拼贴画)。你在一个焦点小组中展示 100 人,95 人说他们愿意。然后,您将蓝图发送给一家制造公司,该公司生产 100 种相同的产品。这与您的情况类似。

您的ImageViewController.swift 就像蓝图一样。自己创建一个新实例就像是在说:“将图像放入 magicBox 的蓝图中”。 iOS 没有想法将图片放入 UIViewControllerImageViewController 类中,因为您可以无限次重复使用它。你需要指定哪个你想要的(即使你可能只有一个)

因此,您必须:

    进入故事板 选择目标ImageViewController 点击右侧工具栏左起第三个图标 在“Storyboard ID”部分输入一个 ID(如“ImageVC1”)

    var imageClassName = ImageViewController() 替换为:

    var imageClassName: ImageViewController = self.storyboard!.instantiateViewControllerWithIdentifier("id you entered in step 4") as! ImageViewController

你很好!

【讨论】:

这是迄今为止最好的解释。我清楚地理解了这个概念。谢谢!鲍勃罗恩 没问题!当我开始使用 Swift 时,你不知道这让我回味了多久

以上是关于在另一个类的滚动视图中添加图像?的主要内容,如果未能解决你的问题,请参考以下文章

从另一个方法将子视图添加到子视图

滚动时在另一个片段视频视图中重叠一个片段的视频拇指

UIScrollView 中的 UITextView 都在另一个 UIScrollView 中

从 URL 下载图像并添加到滚动视图子视图

IOS:在滚动视图中添加图像视图以进行缩放

IOS:在滚动视图中添加一些子滚动视图,图像不出现