美文网首页
iOS-UIscrollView不能滑动的原因之一

iOS-UIscrollView不能滑动的原因之一

作者: fly大梦想家 | 来源:发表于2019-05-13 17:41 被阅读0次

1.确定 UIScrollView 对象的 contentSize 属性小于父视图

2.上面的语句不能放在 viewDidLoad() 方法当里

在 iOS 8 以上可以放在 viewDidAppear() 方法中。而在 iOS 7 ,可以参考iOS7 下 UIScrollView 无法滑动 中提到的方法,放在 viewDidLayoutSubviews() 方法中。
原理
iOS 的view加载过程会执行很多方法,当 view 加载完毕后,会先执行 viewDidLoad() 方法,然后在开启 Auto Layout 的情况下,会根据自动布局再一次计算 Constraint ,在计算完毕后会执行 viewDidLayoutSubviews() 方法。而最后才会执行 viewDidAppear() 方法。所以我们只要晚一些再设置,在 view 即将显示的时候设置 scrollView 的 contentSize 属性就可以了。

上面两点是排查问题的时候查到的资料,原地址

3.但是以上并没有解决我的问题,后来排查发现

    UIPanGestureRecognizer *keyBoardMissTap = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(keyBoardMiss:)];
    keyBoardMissTap.delegate = self;
    [_backgroundView addGestureRecognizer:keyBoardMissTap];

我的scrollview上添加了pan手势,手势冲突引起的,(这手势原本作用是界面正在编辑的时候,滑动收起键盘,当时界面不需要scrollview滑动),现在为解决冲突去掉手势,代码这样处理

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    if (![scrollView isKindOfClass:[UITextView class]]) {
        [self.view endEditing:YES];
    }
}

相关文章

网友评论

      本文标题:iOS-UIscrollView不能滑动的原因之一

      本文链接:https://www.haomeiwen.com/subject/svyraqtx.html