如何让UIScrollView开始从上到下滚动。当我向下滑动时,它会先向下滚动,而不是向上滚动,然后消失。我现在所拥有的是,我可以先向上滚动,然后向下滚动,同时向下滚动它消失了。这是我的代码-
func scrollViewDidScroll(_ scrollView: UIScrollView) {
//for toogle swipe view
if scrollView.contentOffset.y < 120 {
self.swipeMsgView.isHidden = false
}else {
self.swipeMsgView.isHidden = true
}
//for making bottom inset
if scrollView.contentOffset.y < 190 {
var contentInset:UIEdgeInsets = scrollView.contentInset
contentInset.bottom = scrollView.contentOffset.y-100
scrollView.contentInset = contentInset
}
//when swipe down
if scrollView.contentOffset.y == 0 {
if !isScrollDownFirstTime{
UIView.animate(withDuration: 0.5, animations: {
self.dismiss(animated: true, completion: nil)
})
}
}
//for tracking first time scrolling
if scrollView.contentOffset.y > 150 {
isScrollDownFirstTime = false
}
}它工作得很好。但我想在用户先滑动或向下滚动时消失视图(滑动手势不起作用)。有没有什么优雅的方法可以用这个现有的特性来做到这一点呢?谢谢。
发布于 2021-05-20 12:57:29
@Serg Smyk,这里是我如何解决这个问题的。
fileprivate var isScrollDownFirstTime = true
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("Content y offet : \(scrollView.contentOffset.y)")
//for toogle swipe view
if scrollView.contentOffset.y < 120 {
self.swipeMsgView.isHidden = false
} else {
self.swipeMsgView.isHidden = true
}
//for making bottom inset
if scrollView.contentOffset.y < 190 {
var contentInset:UIEdgeInsets = scrollView.contentInset
contentInset.bottom = scrollView.contentOffset.y-100
scrollView.contentInset = contentInset
}
//when swipe down
if scrollView.contentOffset.y == 0 {
print(CLASS_NAME+" -- scrollViewDidScroll() -- contentOffset.y = 0")
if !isScrollDownFirstTime{
UIView.animate(withDuration: 0.5, animations: {
self.dismiss(animated: true, completion: nil)
})
}
}
if scrollView.contentOffset.y < 1 {
print(CLASS_NAME+" -- scrollViewDidScroll() -- contentOffset.y<0")
UIView.animate(withDuration: 0.5, animations: {
self.dismiss(animated: true, completion: nil)
})
}
//for tracking first time scrolling
if scrollView.contentOffset.y > 150 {
isScrollDownFirstTime = false
}
}https://stackoverflow.com/questions/50596853
复制相似问题