【问题标题】:How to make a vertical scrolling view on iOS?如何在 iOS 上制作垂直滚动视图?
【发布时间】:2013-02-10 09:35:51
【问题描述】:

有人可以指导我学习如何在我的 iOS 应用上实现垂直滚动视图的教程吗?

我不敢相信过去 2 天,我在垂直滚动视图上找不到一个工作示例。所有的教程都是关于水平滚动、缩放等的。

我正在寻找类似于本教程http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone-2/ 的内容,它展示了如何从 Builder 而非以编程方式制作 uiscrollView 并向其添加对象。我发现的唯一缺陷是,当试图在滚动区域中向下添加地图时,地图会出现在我放置的位置而不是在我放置的位置。也许对此也有任何想法?

有什么想法吗?

【问题讨论】:

  • idevzilla.com/2010/09/16/uiscrollview-a-really-simple-tutorial 如果您可以制作水平滚动视图,那么您将自动拥有一个也可以垂直滚动的视图。只需正确操作contentSize 属性即可。
  • 您应该能够将 srcollView.contentSize 设置为比您的滚动视图框架更大的宽度,这将使其水平滚动。在您的 xib 中单击滚动视图并设置启用滚动和水平弹跳。
  • 是的,我已经看过本教程并完成了,对理解如何制作垂直视图毫无帮助。我更喜欢界面构建器的东西,而不是太多的编程

标签: ios uiscrollview vertical-scrolling


【解决方案1】:

很简单,和水平滚动视图一样。 在视图层次结构中添加滚动视图,

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:scrollView];

现在要使滚动视图可滚动,请将其滚动视图内容大小设置为大于其边界。

[scrollView setContentSize:CGSizeMake(scrollView.bounds.size.width, scrollView.bounds.size.height*3)];

现在它可以滚动三倍于scrollView的高度。

【讨论】:

  • 好的。但是我如何将按钮映射 textview 等放置到我的视图中?我不是指程序化。我的意思是来自视图构建器。
  • 在故事板或 xib 中。您首先将地图视图和文本视图拖到滚动视图上。在滚动视图中设置单个项目的框架。但是要设置 contentsize,您需要在代码中进行。只需查看最大高度和宽度并在 viewdidload 中设置
  • 我明白你想说什么,但我真的不会编码。这就是为什么,我要求一个教程。非常感谢您尝试提供帮助:)
  • 那真是太棒了!
【解决方案2】:

我已经为这个简单的问题苦苦挣扎了一整天。更复杂的方法很可能有好处,但取消选中自动布局解决了我的问题。

为了快速解决问题,我相信这是最好的方法,并且会为您省去很大的麻烦。

【讨论】:

    【解决方案3】:

    所以你想在 xib 中创建一个滚动视图。

    1. 为 nib 文件添加滚动视图
    2. 将其大小设置为您想要的任何值

    3. 添加您的控件(按钮、标签..)

    4. 将其添加为主视图的子视图

    5. 最后创建一个滚动视图的属性并在viewDidLoad中设置滚动视图的内容大小

       self.scrollView.contentSize =CGSizeMake(320, 700);
      

    【讨论】:

    • 我完全按照您的指示进行操作。正如你所说,我确实创建了一个滚动视图,我确实将它添加为子视图,我确实在我的滚动视图中添加了按钮,我创建了一个@property(强,非原子)IBOutlet UIScrollView *scrollView;并将其连接到我的滚动视图。但是视图不可滚动:(。我在这里遗漏了什么吗?我是否需要启用某些属性才能使其可滚动或smth?
    • 你在viewDidLoad中设置了内容大小self.scrollView.contentSize =CGSizeMake(320, 600);
    • Dude 给出一个高于 600 的值:P self.scrollView.contentSize =CGSizeMake(320, 700) 也可以通过拖动滚动视图在 nib 中正确调整视图
    • 简直太棒了!!非常感谢你!这正是我想要的。如此简单。难以置信,我在任何地方都找不到它,而且这里没有人建议这个简单的解决方案。非常感谢!
    • 本不想做新的回答,不过你也可以直接把View本身做成滚动视图,只需要在storyboard editor中,在Identity Inspector中,为Custom Class选择主View您可以将类从默认的 UIView 更改为 UIScrollView。然后按照此答案中的相同步骤进行操作。这对我有用。
    【解决方案4】:

    只需更改滚动视图的内容大小。假设您正在创建具有以下框架的 UIScrollView

    scl=[[UIScrollView  alloc]initWithFrame:CGRectMake(0, 0, 620, 172)];
    

    现在调用滚动视图的内容大小属性,如下所示。

    [scl setContentSize:CGSizeMake(700, 172)];
    

    现在在视图/视图控制器等上添加滚动视图并检查它。

    【讨论】:

      猜你喜欢
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 2019-07-08
      • 1970-01-01
      • 2019-11-18
      • 2017-02-03
      相关资源
      最近更新 更多