如何保持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()
}
你可以只隱藏/在你的if語句取消隱藏按鈕,你已經計算和評價?還是你想達到的其他目標? – 2017-09-03 19:31:12
@Sneak謝謝你的迴應!當用戶查看「UIScrollView」內容時,該按鈕不會出現。看起來好像它躺在黃色的景色下。一旦它出現在屏幕上,它需要保持上圖所示的狀態。通過隱藏上述方法,它不會突然出現在屏幕上,而不會出現在黃色視圖下方嗎?再次感謝你。能否請你幫忙。 –
那麼,你可以簡單地使用一個UIView動畫方法將它動畫到屏幕上,一旦動畫完成,你可以保留它,如果你不想再隱藏它。這裏是一個例子:https://stackoverflow.com/questions/42326892/uiview-appereance-from-bottom-to-top-and-vice-versacore-animation – 2017-09-03 19:37:59