【发布时间】:2015-09-01 01:50:19
【问题描述】:
好的,我已经花了好几个小时试图解决这个问题。在这里阅读了无数其他问题,这些问题帮助我了解了 UI 滚动视图的工作原理,但并没有帮助我在我的应用程序中实际实现一个。我想我终于明白了——但这似乎并不正确。有人可以告诉我在下面的过程中我哪里出错了(如果我是的话):
- 拥有新的空视图控制器。
- 将滚动视图添加到视图控制器。
- 在滚动视图上设置约束:将 0、0、0 和 0 固定到视图。
- 在滚动视图中插入新的 UIview。重命名为 contentView
- 对 contentView 施加约束:0、0、0 和 0,全部针对滚动视图。
现在这里是棘手的部分:uiscrollview 没有特定的大小——它只采用其中的容器 (contentView) 的大小。所以除非你给 contentView 一个特定的高度和宽度,否则它会说“scrollview has ambiguous scrollable height/width.”
好的,这是有道理的。所以我希望可滚动的内容高度为 900,所以我将 contentView 的高度设置为 900。但是,我不想要水平滚动。用户不喜欢它,它使用户界面变得丑陋。但是,问题是我必须将 contentView 设置为某个宽度,否则宽度为 0 并且其中没有内容显示。
所以,我选择了一个特定的宽度,例如 320。这对 iPhone 4S 和 5/5S 非常有用。如果 4.7" 和 5.5" iphone 不存在,那就没问题了。但对于较大的 iphone 来说就有点尴尬了,因为滚动视图上的内容不能完全穿过屏幕,它会突然结束并且看起来不美观。
那么,有没有办法解决这个问题?我过去一直只是使用 tableview,但现在我需要访问 uitablecell 类不能做的事情,这不是一个选择。我尝试将 contentView 设置为与 Superview 相同的宽度,但这也不起作用,我仍然收到消息“scrollview 具有不明确的可滚动宽度”。我只希望 iphone4/5 的 contentView 的宽度为 320,而 6/6 plus 的宽度为 400。这可能吗?
【问题讨论】:
-
swift 还是 Objective-C?
-
抱歉忘了标注,很快
标签: ios xcode uiscrollview