尽管没有使用Autolayout,但垂直滚动在UIScrollView和iOS7以及Xcode 5中不起作用

问题描述 投票:8回答:10

当我尝试在iOS 7和Xcode 5中使用UIScrollView时,它不响应垂直滚动。我首先将ScrollView从对象库拖放到storyboard,并将其大小设置为width = 320和height = 1500,然后拖放三个标签,并在y = 300,800,1200处找到这些标签。对于y坐标的标签等于800和1200,我首先将scrollview移动到上部,使这些对象位于相应的y值。然后,我将scrollview连接到实现文件作为插座,在viewDidLoad方法中,我写self.myScrollView.contentSize = CGSizeMake(320, 1500)。最后在width = 320和height = 568处设置scrollview的大小。然后运行模拟器,但它不会对垂直滚动做出反应。然后我取消选择use autolayout再次运行模拟器,它仍然没有工作。

那么我该如何解决这个问题呢?或者任何人都可以告诉我任何有用的教程,这些教程讲授iOS 7和Xcode 5中的UIScrollView(这很重要,因为我读过的每个教程都是基于以前的版本)?

我使用Xcode 5.0.2。

谢谢。

ios objective-c xcode uiscrollview
10个回答
13
投票

Here's self answer

我将self.myScrollView.contentSize = CGRectMake(320, 1500);viewWillAppear改为viewDidLoad,并运行模拟器,然后由于某些原因滚动现在正在工作。正如我在原帖中所说,我首先在viewDidLoad中写了它,并在我阅读了kkocabiyik的答案后将其移至viewWillAppear。我不确定为什么我的原始代码不起作用 - 也许是因为我在从Mani和Rashad获得大量帮助的过程中略微修改了我的代码,但同时将上述代码保存在viewWillAppear中。

对于那些陷入同一陷阱但将来会遇到这个问题的人,我已经能够从这个设置中解决问题了:

  • self.myScrollView.contentSize = CGSizeMake(320, 1500);viewDidLoad
  • 将故事板中的UIScrollView作为IBOutlet属性连接到myScrollView
  • 不使用自动布局
  • 设置x = 0,y = 0,width = 320,height = 568以从故事板内滚动查看

并且还要注意使用autolayout不起作用。此外,在qazxsw poi中使用自动布局和设置内容大小也不起作用。

我想感谢所有帮助我解决这个问题的人。谢谢。


1
投票

我有一个问题,当我添加textField或图像时,我的滚动视图不起作用。我通过将所有内容放入堆叠视图来解决这个问题。然后,当我通过手机运行时,我能够滚动。


13
投票

看看viewWillAppear视频。它显示了如何在XCode 5 / iOS 7中使用UIScrollLayout和autolayout。


10
投票

你必须设置this然后它只会垂直滚动。(contensize> scrollview.height)并检查bool vairable scrollview height as screensize or less than contentsize.设置为scrollEnabled


6
投票

设置x = 0和y = 0,您必须将内容大小设置为(320,1500),而不是x和y。 x和y定义滚动视图的起始位置而不是内容大小。对于内容大小:

YES

希望这可以帮助.. :)


5
投票

使用AutoLayout时是否修改任何元素的框架无关紧要。具有AutoLayout的查看框架由它处理,因此它将忽略您在 self.scrollView.contentSize = CGSizeMake(320, 1500); 方法上所做的操作。如果你必须使用AutoLayout,你可以将你在viewDidLoad中所做的事情粘贴到viewDidLoad,这样它将完成AutoLayout完成它之后完成的所有工作。


3
投票

本教程使用scrollviews保存了我的生活:viewDidAppear


3
投票

我也遇到了与Xcode 6相同的问题。关注Scroll View Autolayout Tutorial,这真的非常有帮助,节省您的时间。


3
投票

this steps

使用onOffScroll.contentSize = CGSizeMake(content width,content height);方法并使用此方法中的代码。它可能会帮助你。


2
投票

我注意到故事板中的scrollview高度不能大于屏幕。如果你想要更大,那么以编程方式,而不是在故事板中。

© www.soinside.com 2019 - 2024. All rights reserved.