UIScrollView内容大小固定为600x600(Main.storyboard大小)

sre*_*thk 1 objective-c uiscrollview ios autolayout

过去两周我一直在面对这个问题,还没有得到解决方案.

我在我的应用程序中使用UIScrollview存在问题.通常在我的应用程序中,有动态文本和不同大小的图像将来自webservices.例如,想象一下Facebook Newsfeed.我的申请类似于Facebook新闻源.有时,只有文字,有时会有文字和图像.并对该帖子发表评论.

正如我在许多链接中看到的那样,我所遵循的层次结构是SuperView - > UIScrollView - > Content View,并且元素被放置在该内容视图中.我将内容视图中元素的约束分配给Superview(ContentView ---约束 - SuperView).当视图中的内容超出superview的大小时,它必须滚动.但是,scrollview内容大小限制为600x600的大小,即在main.storyboard中,当我们设计W任何x H任何大小时.我见过很多教程并搜索了很多网站.但跟着他们没有给我带来好运.

任何帮助都很明显.

vac*_*ama 6

以下是如何从头开始在Interface Builder中设置scrollView,它与Auto Layout一起使用.

  1. 从一个新的ViewController开始.拖出一个scrollView,使其填充视图.Untick将Constrain限制为边距,并将此scrollView的左,上,右和下边缘限制在其超视图的左侧,顶部,右侧和底部,偏移量为0.这样,scollView就可以填充任何设备上的任何设备.取向.如果你愿意,你可以让你的scrollView占用较少的屏幕,只需确保它是完全一致的.

  2. 将视图添加到scrollView.这应该是您的scrollView上唯一的顶级视图,它将作为您的contentView.

  3. 将此contentView的左边,顶部,右边和底边限制在scrollView的左侧,顶部,右侧和底部,偏移量为0.此时,您将看到有关模糊内容大小的警告.那是因为你还没有告诉它你的内容视图有多大.

  4. 要调整contentView的大小,请将宽度和高度约束添加到contentView.如果要滚动,则宽度和高度必须大于scrollView本身的宽度和高度.如果您只想垂直滚动,请将contentView的宽度设置为等于scrollView的宽度.要执行此操作,请在" 文档大纲"视图中,control从contentView拖动到scrollView,然后从弹出窗口中选择" Equal Widths ".

  5. 如果您希望能够从代码更改contentView的高度(以考虑动态内容),请首先在contentView中创建一个高度约束,control然后从弹出窗口中选择高度.IBOutlet通过control-dragging从高度约束(在Document Outline视图中找到)到ViewController的代码创建一个高度约束.为插座指定一个名称,scrollViewHeight然后使用一个值设置高度,就像scrollViewHeight.constant = 2000需要更改scrollView的高度一样.