uiscrollview - 我理解这是正确的吗?

时间:2015-09-01 01:50:19

标签: ios xcode uiscrollview

好吧,我花了几个小时试图解决这个问题。在这里阅读了无数其他问题,这些问题帮助我理解了UI滚动视图的工作方式,但这些问题并没有帮助我实际将一个实现到我的应用程序中。我想我终于明白了 - 但它似乎并不正确。有人可以在下面的过程中告诉我我哪里出错了(如果我):

  1. 拥有新的空视图控制器。
  2. 将scrollview添加到视图控制器。
  3. 在scrollview上设置约束:将0,0,0和0引脚添加到视图中。
  4. 在scrollview中插入新的UIview。重命名是contentView
  5. 在contentView上设置约束:0,0,0和0,全部针对scrollview。
  6. 现在这里是一个棘手的部分:uiscrollview没有特定的大小 - 它只占用其中的容器(contentView)的大小。因此,除非你给contentView一定的高度和宽度,否则它表示" scrollview具有模糊的可滚动高度/宽度。"

    好的,这样才有意义。所以我希望可滚动内容高度为900,所以我将contentView的高度设置为900.但是,我不想要水平滚动。用户不喜欢它,它会造成丑陋的用户界面。但是,问题是我必须将contentView设置为某个宽度,否则宽度为0并且内部不会显示任何内容。

    所以,我选择一定的宽度,例如320.这适用于iPhone 4S和5 / 5S。如果4.7"和5.5" iphone不存在,这没关系。但是对于较大的iphone而言,它有点尴尬,因为滚动视图上的内容无法完全通过屏幕,它突然结束并且看起来并不显眼。

    那么,有什么方法可以解决这个问题吗?我过去只是使用了tableview,但现在我需要访问uitablecell类无法做到的事情,而且这不是一个选项。我尝试将contentView设置为Superview的相等宽度,并且它也没有工作,我仍然收到消息" scrollview具有模糊的可滚动宽度。"我只想让contentView的宽度为iphone4 / 5的320,而6/6 plus的宽度为400。这可能吗?

1 个答案:

答案 0 :(得分:0)

将滚动视图的内容视图限制为与 root 视图(即包含滚动视图的视图)相同的宽度。绝对不要硬编码宽度。

编辑:最后!这是我刚刚创建的故事板的屏幕截图。如果有人想要,我可以将项目代码放在GitHub上。 enter image description here