Ios scrollViewDidScroll(scrollView:UIScrollView)到达底部后,如何保持UIButton浮动?

Ios scrollViewDidScroll(scrollView:UIScrollView)到达底部后,如何保持UIButton浮动?,ios,swift,uiscrollview,Ios,Swift,Uiscrollview,以下是当前的实现。灰色按钮在滚动视图上浮动。到达黄色视图(滚动视图的末尾)后,是否有办法使按钮显示。然后让它漂浮在屏幕最底部 我正在使用以下代码: override func scrollViewDidScroll(scrollView: UIScrollView) { if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) { //reac

以下是当前的实现。灰色按钮在滚动视图上浮动。到达黄色视图(滚动视图的末尾)后,是否有办法使按钮显示。然后让它漂浮在屏幕最底部

我正在使用以下代码:

override func scrollViewDidScroll(scrollView: UIScrollView) {

if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) {
    //reached bottom - how to show button below yellow
    // and keep it floating as shown above
}
}
添加到目前为止我尝试的其他代码:

    @IBOutlet weak var btnScroll: UIButton!

var startingFrame : CGRect!
var endingFrame : CGRect!

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) && self.btnScroll.isHidden {
        self.btnScroll.isHidden = false
        self.btnScroll.frame = startingFrame // outside of screen somewhere in bottom
        UIView.animate(withDuration: 1.0) {
            self.btnScroll.frame = self.endingFrame // where it should be placed
        }
    }
}

func configureSizes() {
    let screenSize = UIScreen.main.bounds
    let screenWidth = screenSize.width
    let screenHeight = screenSize.height

    startingFrame = CGRect(x: 0, y: screenHeight+100, width: screenWidth, height: 100)
    endingFrame = CGRect(x: 0, y: screenHeight-100, width: screenWidth, height: 100)

}

override func viewDidLoad() {
    super.viewDidLoad()

    configureSizes()
}

如果我没听错,你想把按钮放在gif上显示的位置上

请尝试以下代码:

override func scrollViewDidScroll(scrollView: UIScrollView) {
  if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) && self.button.isHidden {
    self.button.isHidden = false
    self.button.frame = startingFrame // outside of screen somewhere in bottom
    UIView.animate(withDuration: 1.0) {
      self.button.frame = yourFrame // where it should be placed
    }
  }
}
更新

添加此代码以在动画显示按钮之前隐藏按钮

override func viewDidLoad() {
    super.viewDidLoad()
    self.button.isHidden = true
    ...
}

您可以在if语句中隐藏/取消隐藏已计算和注释的按钮?还是你还想做些别的事情?@偷偷谢谢你的回应!当用户查看
UIScrollView
内容时,按钮不会出现。它看起来好像躺在黄色的视野下。一旦它出现在屏幕上,它就需要如上图所示保持。通过以上方法取消隐藏,它会不会突然出现在屏幕上,而不是出现在黄色视图下?再次感谢你。你能帮个忙吗?好吧,你可以简单地使用UIView动画方法将它制作到屏幕上,一旦动画完成,如果你不想再隐藏它,你可以将它保留在那里。这里有一个例子:谢谢。你能检查一下上面更新的代码吗。视图当前没有任何故事板约束。仍然没有显示所需的结果。即使没有执行任何滚动,灰色按钮也会持续出现在屏幕上。我已经删除了它的所有故事板自动布局约束。我将附上一个屏幕截图,显示它当前的样子。添加了scrollview IBoutlet,并在viewdidload中将其委托添加到self。现在,在将代码添加到上述更改后,按钮动画将在屏幕加载后不久发生。即使不滚动按钮,也会发生动画。是否只有在scrollViewDidScroll()时才能控制它?非常感谢。这是因为您的代码(scrollView.contentOffset.y>=(scrollView.contentSize.height-scrollView.frame.size.height))始终为真,请重新计算它,并确保它正常工作