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

Bla*_*ard 9 xcode objective-c uiscrollview ios

当我尝试在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.

谢谢.

Bla*_*ard 13

这是自我回答

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

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

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

并且还要注意使用autolayout不起作用.此外,使用自动布局和设置内容viewWillAppear也不起作用.

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


jax*_*xvy 13

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


Man*_*ani 10

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


Ras*_*had 6

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

    self.scrollView.contentSize = CGSizeMake(320, 1500);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.. :)


kko*_*yik 5

使用AutoLayout时是否修改任何元素的框架无关紧要.具有AutoLayout的查看框架由它处理,因此它将忽略您对viewDidLoad方法所做的操作.如果你必须使用自动版式,你可以复制粘贴你在做什么viewDidLoad,以viewDidAppear使它会做自动版式完成它的工作后,所有的工作做完.