简短的回答:你不知道。
您要做的是将图像视图添加为另一个视图的子视图。执行此操作的简单方法是将图像视图放入滚动视图中,并进行约束,以便它唯一可以滚动的位置是向下滚动,而且只能稍微向下滚动。然后就可以用零代码实现滚动。
EDIT:
这实际上并不是一个编码问题——它更像是一个界面生成器问题。您需要设置滚动视图。
滚动视图是一种允许您查看较大视图的一部分的视图。
您可以将滚动视图想象成一张带有矩形孔的纸。您将一张更大的纸放在它下面(滚动视图的内容视图),然后您可以滑动更大的纸并通过孔查看它的不同部分。
以下是您的设置方法。
将滚动视图拖到视图控制器上。调整其大小并为其添加约束以将其放置在您想要的位置。例如,如果您希望图像视图的大小为 300x300 点,并且希望能够将其向上或向下拖动 20 点,则使滚动视图高 20 点。 (宽:300,高:320)
选择滚动视图内的视图,并将其宽度设置为与滚动视图相同的宽度,但比滚动视图高 20 磅。 (宽:300,高:340)。添加约束以锁定其高度和宽度。
现在,您的滚动视图足以容纳 300x300 点图像,顶部和底部总共有 20 点空白。
您创建了一个比该值大 20 磅的内容视图,因此它可以在滚动视图中向上或向下滑动 20 磅。
将 300x300 点图像视图拖到滚动视图内的视图中,为其分配图像,然后添加约束以锁定其大小并将其在其超级视图中水平和垂直居中。
最后一步是设置滚动视图的内容大小。通常,您只需将滚动视图的内容大小设置为其内容视图的大小。您可以通过将这段代码添加到视图控制器的 viewDidLoad 来做到这一点:
(假设您已将一个插座连接到您的滚动视图,称为theScrollView
)
//Get the first (and only) subview of the scrollView.
let subview = theScrollView.subviews[0] as! UIView;
//Make the scroll view's contentSize the same size as the content view.
theScrollView!.contentSize = subview.bounds.size;
也可以设置滚动视图的内容大小,而无需任何代码。您可以使用 IB(接口生成器)的一项功能,称为“用户定义的运行时属性”。以下是您的操作方法:(如果您使用此方法,请勿将上面的代码添加到viewDidLoad
)
在 IB 中选择滚动视图。
按 command-option 3 选择“身份检查器”。
在“用户定义的运行时属性”部分中,点击左侧的加号。编辑Key Path
到“contentSize”(除了“Size”中的“S”之外,全部小写。这非常重要。)按 Enter 键更改键路径。然后点击“类型”列并选择“尺寸”。值字段将显示“{0,0}”。输入您所需的内容大小:(上例中为“{300,340}”。)
它的作用是告诉 IB“在运行时,在所选对象(滚动视图)中查找名为“contentSize”的属性。将该属性设置为 CGSize 类型的指定值。
完成后,您的 IB“身份检查器”应如下所示:
请注意,如果您在使用“用户定义的运行时属性”时得到错误的键名,那么当您显示该视图控制器时应用程序会崩溃,并显示一条非常神秘的消息。
默认情况下,滚动视图允许您在拖动其内容时“过度”,然后在松开时弹回原位。您可以通过取消选中 IB“属性检查器”中的“反弹”复选框来关闭该功能(命令选项 4)