ios - Xcode 在没有内容 View 的情况下直接嵌入 ScrollView

标签 ios scrollview

我使用的是 Xcode 6.4,我正在努力处理一个包含大量不同标签和文本字段等的大页面,这些页面必须是可滚动的。我查看了各种教程,其中一些显然已经过时,并且我首先将所有元素放在 ScrollView 内的 View 中。但是使用自动布局让所有元素正确对齐是一个很大的痛苦,除了不让它滚动之外。

现在我看到有人建议直接在元素上使用以下内容,根本没有内容 View ,只有 ScrollView :

Editor -> Embed In -> Scroll View

我喜欢它,因为它似乎没有什么不成比例的,所有元素在 iPhone 上的显示与我在 Storyboard 上的完全一样,无需设置任何限制,但我无法让它滚动.

这是我的类(class)

类 ResNotFoundViewController: UIViewController, UIScrollViewDelegate

我也尝试在代码中设置 ScrollView 的高度:

@IBOutlet weak var scrollviewoutlet: UIScrollView!

然后在 viewDidLoad 中这样:

scrollviewoutlet.contentSize = CGSizeMake(375, 840)

enter image description here .

但我根本无法让它滚动,它将保持与打开时完全一样,From: Label 是最后一个可见元素。

我做错了什么?

最佳答案

由于您的日志记录,您已经找到问题所在。 (不要担心两次调用 - viewDidLayoutSubviews 被调用的次数和时间是无趣的。)

问题是您将 ScrollView 本身设置为比窗口高。特别是,它是 375x809。但它的 contentSize 也是如此。因此没有什么可滚动的。 ScrollView 只有在 contentSize 比 ScrollView (一维或二维)时才能滚动。 (此外,比屏幕大的 ScrollView 通常有些毫无意义,因为它的某些内容用户永远不会看到 - 即使一直滚动,这些内容也会在屏幕外。)

所以,修复 ScrollView 的大小本身就可以了。最好的方法是为其分配约束,将其边界固定到其超 View ,因为超 View 在不同设备上具有不同的大小。

关于ios - Xcode 在没有内容 View 的情况下直接嵌入 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33660675/

相关文章:

c# - 使用 xamarin (ios) 扫描本地网络中的设备

ios - 自定义模式演示中的 UIBlurEffect

android - 键盘显示上忽略的 ScrollView 填充

android - 水平 recylerview 的同步滚动与 viewpager 滚动

android - 当数据在android中完成加载时如何防止Webview向上滚动

ios - 添加 UIFont 并查找字体系列会因 EXC_BAD_ACCESS 崩溃

iOS AssetLibrary 存储指针

java - Intellij IDEA |打包AIR应用程序ios失败

带有 RelativeLayout 的 Android ScrollView

ios - 根据选择自动向下滚动