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