【问题标题】:How to fix button on display如何修复显示屏上的按钮
【发布时间】:2021-10-15 23:55:42
【问题描述】:

我是(快速)编程方面的新手,所以如果我说出或问一些愚蠢的问题,我希望你能原谅我。

我有一个ViewController 和一个ScrollView。我用不同的内容填充ScrollView,比如TableView 和ImageViews。接下来,我想添加一个按钮。无论用户向下或向上滚动到哪里,此按钮都应位于显示屏的右下角。你能给我一些指导吗?基本上,我正在寻找一个允许我参考显示器边缘的属性。

【问题讨论】:

  • 我已经尝试过您的解决方案,不幸的是它不起作用。还是我理解错了? (见截图)

标签: swift xcode autolayout


【解决方案1】:

好吧,朋友,您必须将按钮设置在 scrollView 层之外。

  • 您可以在 Canvas(故事板或 xib 文件)中执行此操作,确保其在 scrollView 层之上

  • 使用如下代码添加的简单方法:

    let screenHeight = UIScreen.main.bounds.height
    let buttonHeight:CGFloat = 45.0
    
    let screenWidth = UIScreen.main.bounds.width
    let buttonWidth:CGFloat = 200.0
    
    let padding:CGFloat = 30.0
    
    let customframe = CGRect(x:(screenWidth - buttonWidth - padding) , y: (screenHeight - buttonHeight - padding), width: buttonWidth, height: buttonHeight)
    let floatingButton = UIButton(frame: customframe)
    floatingButton.backgroundColor = .blue
    self.view.addSubview(floatingButton)
    self.view.bringSubviewToFront(floatingButton)
    

确保将按钮添加到 self.view 并在之后调用bringSubViewToFront,这听起来很像,但您必须先添加图层才能做某事。

  • 不管你有多少层,或者有scrollView。这适用于所有 iPhone 尺寸

【讨论】:

  • 您好,谢谢您的回复。你试过这个吗?当我尝试在 ScollView 上滑动按钮时,它会自动滑回 ScrollView 后面。我编辑了我的帖子并在情节提要中构建了一个示例(链接中显示的图像)。按钮 2 应该是固定的。
  • 为我工作:self.view.bringSubviewToFront(floatingButton)
  • @anuri 在你的故事板中检查你的按钮它不应该在 scrollView 层次结构下,它们应该在同一个 lavel 中。当您的按钮成为 scrollView 的一部分时,它会移动!
  • 嘿,我做到了。我把它们放在同一个层次上。
  • images 说错了。但如果你确定你的按钮约束只与视图控制器的主视图有关
【解决方案2】:

我不知道你的看法(你可以把你的代码,这将有助于更多的问题),相反,我在集成按钮的方式中发生的事情是使用 JJFloatingActionButton pod它允许您在视图中有一个浮动按钮。 访问https://cocoapods.org/pods/JJFloatingActionButton 了解有关此库的更多信息。

【讨论】:

  • 我已经附上了故事板的截图。按钮 2 应该是固定的。按钮 1 在滚动视图中按应有的方式移动。希望你现在能更好地理解我。不幸的是,建议的 CocoaPod 不是我想要的。
猜你喜欢
  • 2020-12-27
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多