UITableView
是否可以在底部反弹,但不能在顶部反弹?如果是这样,请给我看代码。
问问题
9365 次
8 回答
44
我没有更改bounces
属性,而是将其添加到UIScrollViewDelgate
方法中:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.y<=0) {
scrollView.contentOffset = CGPointZero;
}
}
于 2014-04-15T19:23:32.687 回答
8
对于迅捷4
extension YourViewController: UIScrollViewDelegate{
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == tableView {
let a = scrollView.contentOffset
if a.y <= 0 {
scrollView.contentOffset = CGPoint.zero // this is to disable tableview bouncing at top.
}
}
}
}
于 2017-05-24T06:13:48.610 回答
4
应该可以通过观察 UITableview 的 contentOffset 属性来实现。
[_tableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:NULL];
. . 并防止偏移量变为负数。
于 2013-06-18T10:56:12.380 回答
4
我也遇到过这个问题,我的解决方法是:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.y > 100) {
scrollView.bounces = NO;
}else{
scrollView.bounces = YES;
}
}
我在我的项目中使用了这段代码,它运行良好。
于 2017-05-18T04:40:43.413 回答
2
您可以尝试使用这些UIScrollViewDelegate
方法来检测拖动方向并bounces
适当调整属性吗?
于 2013-06-18T11:49:15.927 回答
1
迅速
func scrollViewDidScroll(_ scrollView: UIScrollView) {
//Check to make sure this only applies to tableview
//and not other scrollviews inside your View/ViewController
if scrollView.superclass == UITableView.self {
//bounce will only be true if contentOffset.y is higher than 100
//I set 100 just to make SURE, but you can set >= 0 too
scrollView.bounces = scrollView.contentOffset.y > 100
}
}
于 2021-04-11T09:28:45.180 回答
0
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.y <= 0) {
scrollView.contentOffset = CGPointZero;
scrollView.showsVerticalScrollIndicator = NO;
} else {
scrollView.showsVerticalScrollIndicator = YES;
}
}
@Liron Berger 的解决方案会导致 VerticalScrollIndicator 仍然显示,只需设置showsVerticalScrollIndicator
为NO
即可解决此问题
于 2017-05-11T09:07:21.337 回答
0
在 Swift 2.2 中:
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.y <= 0 {
scrollView.contentOffset = CGPointZero
}
}
于 2016-06-25T13:38:41.410 回答