如何检测UIScrollView何时可滚动?

时间:2014-03-17 15:29:32

标签: objective-c ios7 uiscrollview uiscrollviewdelegate

我有一个UIScrollView坐在一个popover中。它使用约束固定到弹出窗口的边缘,并且它的完整内容能够在不滚动的情况下显示在弹出窗口中(因此滚动视图不可滚动)。当我点击UITextField(位于此滚动视图内)时,键盘会向上滑动,弹出框会调整大小。当弹出窗口调整大小时,UIScrollView变小,内容现在可以滚动。

所以我的问题是,如何检测滚动视图何时可滚动?

P.S。我想检测这个,以便我可以在可滚动时将delaysContentTouches属性设置为YES,当内容不可滚动时设置为NO。

1 个答案:

答案 0 :(得分:1)

您可以检查contentSize是否大于scrollView的界限。

CGSize contentSize = scrollView.contentSize;
CGSize boundsSize = scrollView.bounds.size;
if (contentSize.width > boundsSize.width && contentSize.height > boundsSize.height) {
    // scrollable both vertically and horizontally
}
else if (contentSize.width > boundsSize.width) {
    // scrollable horizontally
}
else if (contentSize.height > boundsSize.height) {
    // scrollable vertically
}
else {
    // same size or smaller, not scrollable
}