Iphone 情节提要UIScrollView内容大小?

Iphone 情节提要UIScrollView内容大小?,iphone,objective-c,ipad,uiscrollview,storyboard,Iphone,Objective C,Ipad,Uiscrollview,Storyboard,我觉得我已经触及了停止此操作的每一个可能原因,但我的故事板中有一个与插座连接的UIScrollView,在viewDidLoad中,我设置了contentSize,以便可以滚动(是的,比我的帧大小大) 然而,无论我改变什么,我都无法滚动!我在scrollview中有几个文本字段,并启用了弹跳功能,这样我就可以看到,当使用我的子视图测试其上下移动时,无论我将contentSize设置为什么,我都无法滚动 有什么我可能遗漏/需要检查的吗?这是故事板中使用UIScrollView时的已知问题吗 更奇怪

我觉得我已经触及了停止此操作的每一个可能原因,但我的故事板中有一个与插座连接的UIScrollView,在viewDidLoad中,我设置了contentSize,以便可以滚动(是的,比我的帧大小大)

然而,无论我改变什么,我都无法滚动!我在scrollview中有几个文本字段,并启用了弹跳功能,这样我就可以看到,当使用我的子视图测试其上下移动时,无论我将contentSize设置为什么,我都无法滚动

有什么我可能遗漏/需要检查的吗?这是故事板中使用UIScrollView时的已知问题吗

更奇怪的是,我可以这样做:
[scrollView setBackgroundColor:[UIColor blueColor]]和我有一个蓝色的滚动视图!但是设置内容大小失败了

编辑 我唯一的代码(否则scrollview会被放入情节提要视图控制器):

记录的帧,按预期显示:

width: 320.00
height: 504.00
编辑2 事实证明,删除“我的故事板”中滚动视图的任何子视图都可以让它正常滚动。如果我通过故事板向它添加任何子视图,即使是一个空白的全新UIButton,它也不会应用contentSize/允许滚动。

检查这些

  • 启用用户交互
  • 出口连接
  • 包含的内容大小大于边界
  • 已启用滚动
乙二醇

我的故事板在scrollview[工作]中看起来像这样


viewDidLoad不是放置依赖于IB对象帧大小的代码的好地方。如果在viewDidLoad中记录滚动视图的contentSize,您将看到它是(0,0)。将代码(设置内容大小的位置)移动到ViewDidDisplay,它将正常工作。

这似乎是一个类似的问题


故事板中的自动布局或约束可能存在问题。

使用ViewDidLayoutSubview

- (void)viewDidLayoutSubviews
{
    [_scrollView setContentSize:CGSizeMake(320, 500)];
}
UIViewController的方法调用顺序如下

  • 从笔尖醒来
  • viewDidLoad
  • 视图将出现
  • ViewWillLayoutSubView
  • viewDidLayoutSubviews
  • 视图显示

我在视图中有完全相同的代码行出现,但它不起作用

将其移动到viewDidLayoutSubviews,并且工作正常

[scrollView setContentSize:CGSizeMake(320, 500)];

谢谢你的回答

问题很可能与自动布局有关。使用AutoLayout时,需要特别注意UIScrollView


快速修复-将滚动的子视图之一绑定到其superview(滚动视图)的顶部和底部空间

长话短说: 有关这方面的问题: , ,

苹果的文档:
特里普14的回答对我很有用。在swift中,我将其编码为:

override func viewDidLayoutSubviews() {

          (self.view as! UIScrollView).contentSize = CGSizeMake(600, 600)
        }

故事板的最佳方式:


编辑您的帖子,以包含您的
viewDidLoad
方法。可以,它实际上只是一行设置contentSize。记录scrollview框架并将其包括在内,正如预期的那样,奇怪吧。您是否在4英寸屏幕上进行测试?尝试,合乎逻辑的举动,但没有运气。@JoshKahane,这对我来说很好,所以你一定做错了什么。你应该发布你现在正在使用的代码。就是这样,我刚刚将我的滚动视图放到我的视图控制器中,将其连接起来,启用滚动、交互等,我唯一的代码就是设置内容大小。@JoshKahane,,log scrollView,以确保正确连接。你应该覆盖viewdilayoutsubviews方法,在那里,所有的框架都已经设置好了,只是我听别人说自动布局不会影响它们。不过,感谢您向我指出这个方向,我将进一步调查。快速修复-将卷轴的一个子视图绑定到其超级视图(卷轴视图)的顶部和底部空间。这是出现“无卷轴”问题时需要检查的一个重要项。此方法需要在swift中实现。
[scrollView setContentSize:CGSizeMake(320, 500)];
override func viewDidLayoutSubviews() {

          (self.view as! UIScrollView).contentSize = CGSizeMake(600, 600)
        }