【问题标题】:Floating UIButton on UIScrollViewUIScrollView 上的浮动 UIButton
【发布时间】:2013-02-02 22:36:47
【问题描述】:

我想在我的应用中实现以下行为: 我的视图上有一个UIScrollView,带有可自定义的contentSize,我想在其左下角放置一个UIButton,以便在滚动视图时留在那里我希望按钮与内容保持在原来的位置同时滚动的滚动视图。

最好的方法是什么?谢谢!

【问题讨论】:

    标签: ios objective-c cocoa-touch uiscrollview uibutton


    【解决方案1】:

    您可以在视图上添加第一个按钮,然后在视图上滚动视图,请在 xib 中检查该按钮不应该在滚动视图中试试这个我认为它对你有用。

    【讨论】:

    • 如果他先添加按钮,然后添加滚动视图,那么滚动视图将重叠甚至隐藏按钮。至少,按钮不能被按下。
    【解决方案2】:

    您使用界面生成器/故事板吗? 如果是这样,那么只需添加滚动视图。然后添加按钮,但不要将按钮添加为滚动视图的子视图。只需将其添加为兄弟姐妹。但请确保滚动视图首先出现。层次结构应如下所示:

    \--View  (The underlaying UIView
        \--scrollView (The UIScrollView)
            \-- anyView (Any subviews of the scroll view come here
        \--button (The UIButton)
    

    通过这样做,按钮独立于滚动视图、其滚动或内容大小。它可以很好地放置在滚动视图上。

    编辑:一个快速的(不检查语法等)作为编程解决方案的示例。

    UIScrollView *myScroller = [[UIScrollView alloc] initWith...];
    UIImageView *someImage = [[UIImageView alloc] initWith...]; //Just a sample subivew. 
    UILabel *someLabel = [[UILabel alloc] initWith...]; //Another sample.
    UIButton *myButton [[UIButton alloc] initWith...]; 
    
    [self.view addSubView:myScroller];
    [myScroller addSubView:someImage];
    [self.view addSubView:myButton]; //it is important, that myScroller was added first
    [myScroller addSubView:someLable]; //the sequence of addding subviews to the content does not matter much.
    

    (您可能希望在滚动视图中有一个内容视图,然后它是所有子视图的容器。但这并不影响我试图解释的内容。)

    【讨论】:

    • 不幸的是,我不使用 IB 或 XIB;(但我明白你的想法,谢谢!
    • 这没什么大不了的。只需将 UIScrollView 添加为 UIView 的子视图,并将 UIButton 也添加到与子视图相同的 UIView 对象中。两者将共享相同的坐标系。滚动和调整内容视图的大小根本不会影响按钮。只需确保首先添加滚动视图,以便首先绘制它。它的子视图可能会在以后添加。
    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多