【问题标题】:How can I add a scroll view to my iOS application?如何向我的 iOS 应用程序添加滚动视图?
【发布时间】:2010-11-05 15:30:55
【问题描述】:

我正在为 iPhone 创建一个应用程序,该应用程序涉及具有动画图像视图的按钮,我创建了另一个保存按钮的视图,但是我希望能够水平或垂直滚动​​此按钮视图。我已经研究过添加滚动视图,我什至遵循了一个教程,但我只是不知道如何将它添加到我的应用程序中。任何想法任何人?在教程中,我跟随这个人将滚动视图添加到 MainWindow.xib,现在我的应用程序在 viewcontroller.xib 中创建和设计。因此,当我点击构建并执行教程后,​​它会加载该笔尖,您所看到的只是一个白色背景和一个滚动视图。 (也在那个教程中,他滚动了一个图像,我想滚动一个长视图的按钮)我意识到我的问题的新手可能很疯狂,但我是一起编程的新手。这是另一个额外的问题,如果有人帮助我让这个滚动视图工作,如果它的长度比 iPhone 屏幕长,你会在哪里设计该滚动视图的内容?因为据我了解,在界面生成器中进行设计的空间是 iphone 屏幕的大小,而设计比 iphone 屏幕更长的界面是不可行的。 (当然我知道这是可行的,只是不知道怎么做)。

【问题讨论】:

    标签: ios iphone xcode uiscrollview


    【解决方案1】:

    您可以通过编程方式设置内容视图(滚动区域)尺寸:

    [scrollView setContentSize:CGSizeMake(contentViewWidth, contentViewHeight)];
    

    然后使用内容视图的坐标系将视图组件添加到滚动视图。假设您的滚动视图是 100x100 像素,并且您希望滚动视图的宽度是原来的两倍:

    [scrollView setContentSize:CGSizeMake(200.0f, 100.0f)];
    

    然后您可以添加一个按钮以显示在滚动视图的每一半:

    // First half of content view
    button1.frame.origin.x = 10.0f;
    button1.frame.origin.y = 50.0f;
    [scrollView addSubView:button1];
    
    // First half of content view
    button2.frame.origin.x = 110.0f; // NOTE that 110 is outside of
    button2.frame.origin.y = 50.0f;  // the scroll view frame
    [scrollView addSubView:button2];
    

    您可以可能将滚动视图的每个页面设计为 NIB 中的单独子视图,然后在 Interface Builder 中或以编程方式将子视图原点移动到正确的页面位置 - 但我从未尝试过这个。如果这可行,那么您就可以使用 IB 来布局您的按钮。

    我很想知道这是否有效。

    【讨论】:

    • 谢谢你,但我如何才能真正让滚动视图以编程方式添加按钮?因为,到目前为止,我的界面中有一个 scrollView,但它只是不滚动我如何让它滚动?
    • 您是如何配置内容视图的?是否设置为大于滚动视图?
    • 啊,是的,它不是,但现在它是并且它工作了,哦,我解决了我在 IB 中设置视觉布局的问题,它比 iPhone 屏幕更大,而无需以编程方式做到这一点,基本上你不必看到你想要设计的整个视图,只需一次设计一个 iPhone 屏幕尺寸部分。感谢您的有用建议。
    • 哦,顺便问一下,你知道我可以用什么代码来摆脱滚动视图吗?因为当用户在滚动视图中按下按钮时,我希望滚动视图在那时淡出,但我也想知道我可以使用什么代码再次显示滚动视图。提前致谢。
    【解决方案2】:

    大多数视图都有一个 .hidden 属性。

    将其设置为 YES 以隐藏 -> myscrollview.hidden = YES; 设置为 NO 以显示 -> myscrollview.hidden = NO;

    您可以将此隐藏/显示放在动画中并淡出滚动视图。

    查找“简单的石英动画”——它只有几行代码。

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 2016-12-14
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多