如何保持UIButton在scrollViewDidScroll(_ scrollView:UIScrollView)到达底部后浮动?
如何保持UIButton在scrollViewDidScroll(_ scrollView:UIScrollView)到达底部后浮动?
以下是当前的实施。灰色按钮浮动在滚动视图上。是否有一种方法可以在黄色视图(滚动视图的结束)到达时显示按钮。然后保持它在最底部的屏幕上浮动。
我用下面的代码:
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
}
}
}
UPDATE
添加该代码隐藏按钮之前的动画将显示它
override func viewDidLoad() {
super.viewDidLoad()
self.button.isHidden = true
...
}
谢谢。你能否检查上面更新的代码。该视图目前没有任何故事板约束。仍然期望的结果不会出现。 –
什么都不起作用? –
即使没有执行任何滚动操作,灰色按钮也会不断出现在屏幕上。我已经删除了所有的Storyboard自动布局约束。我将附上它目前的样子的截图。 –
你可以只隐藏/在你的if语句取消隐藏按钮,你已经计算和评价?还是你想达到的其他目标? – 2017-09-03 19:31:12
@Sneak谢谢你的回应!当用户查看“UIScrollView”内容时,该按钮不会出现。看起来好像它躺在黄色的景色下。一旦它出现在屏幕上,它需要保持上图所示的状态。通过隐藏上述方法,它不会突然出现在屏幕上,而不会出现在黄色视图下方吗?再次感谢你。能否请你帮忙。 –
那么,你可以简单地使用一个UIView动画方法将它动画到屏幕上,一旦动画完成,你可以保留它,如果你不想再隐藏它。这里是一个例子:https://*.com/questions/42326892/uiview-appereance-from-bottom-to-top-and-vice-versacore-animation – 2017-09-03 19:37:59