如何在滚动视图中隐藏和取消隐藏 UiViews 中的浮动按钮?

Posted

技术标签:

【中文标题】如何在滚动视图中隐藏和取消隐藏 UiViews 中的浮动按钮?【英文标题】:How do I hide and unhide a floating button in UiViews within the scrolling view? 【发布时间】:2016-03-30 10:52:33 【问题描述】:

我想使用滚动视图加载一些视图。我的视图控制器中有 6 个视图和一个浮动按钮。在我的第一个视图中,我不想显示浮动按钮,而在其余视图中,我想显示它。我正在加载这样的视图:

-(void)loadViews

    for (UIView *view in self.scrollView.subviews)
    
        [view removeFromSuperview];
    
    for (int i=0; i<self.arrayViews.count; i++)
    
        UIView *view = [self.arrayViews objectAtIndex:i];
        CGRect frame =view.frame;
        frame.origin.x = self.scrollView.bounds.size.width * i;
        view.frame = frame;
        [self.scrollView addSubview:view];
        floatBtn.hidden = YES;
    

这里我是这样添加的

在 MYPROFILE 选项卡中,我不想显示浮动按钮。

在这个屏幕上我想显示浮动按钮。

【问题讨论】:

@honk。感谢您的编辑。 您的问题不清楚。您似乎永远不想显示您的按钮。此外,您将arrayViews.count 设置为隐藏floatBtn 倍。 OP 需要解释floatBtn 是如何创建的。这个按钮是每个视图一个吗?问题中没有关于真正预期的线索。我怀疑他希望当第一个视图在滚动视图中可见时隐藏一个唯一按钮(与子视图分离),否则可见...... @Xvolks。查看我更新的问题 因此,当您从“我的个人资料”更改为“教育”视图时,会发生一个事件(按钮单击、网络请求……)。在这种情况下,调用委托方法来隐藏或显示按钮。你使用故事板还是 XIB? 【参考方案1】:

所以你有一个像这样(swift 语法)的视图控制器,带有一个按钮。 您必须通过代码管理按钮的隐藏状态,并在每次要更改可见视图时调用 selectView 之类的方法。

class MyViewController : UIViewController 
     @IBOutlet var floatBtn:UIButton!

     override func viewWillAppear(animated:Bool) 
         super.viewWillAppear(animated)
         self.loadViews()
         self.selectView(0)
     

     //your loadViews method
     func loadViews()  
        //remove your floatBtn.hidden = YES; line here
     

     func selectView(viewIndex:Int) 
         // do stuff to show your view
         self.mySubViewChanged(viewIndex != 0)
     


     //create a method that will be called when an event triggers the subview change
     func mySubViewChanged(needsButton:Bool) 
        floatBtn.hidden = !needsButton
     

【讨论】:

以上是关于如何在滚动视图中隐藏和取消隐藏 UiViews 中的浮动按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何快速隐藏和取消隐藏具有高度的视图?

如何在收藏视图中隐藏/取消隐藏部分

图像视图在滚动视图中隐藏导航栏

在 iOS webkit webview 中隐藏滚动视图和滚动条

如何在滚动列表视图上显示/隐藏底部导航视图?

当用户向上滚动时,如何使我的 tableHeaderView 捕捉并取消捕捉到隐藏/未隐藏位置