在 şt 滚动后,我无法在滚动视图中获取可见矩形的坐标。因此,当我想在可见矩形中添加子视图时,我不能。我怎样才能做到这一点?
问问题
13447 次
4 回答
5
CGRect visibleRect = CGRectMake(myScrollView.contentOffset.x, myScrollView.contentOffset.y, myScrollView.contentOffset.x + myScrollView.bounds.size.width, myScrollView.contentOffset.y + myScrollView.bounds.size.height)
滚动后,这应该会为您rect
提供当前可见的内容。当你想计算矩形时,你必须决定的不是什么。如果您想即时获取此信息,请在scrollViewDidScroll
方法中执行此操作。如果您想在用户开始滚动时获取它,请在scrollViewWillBeginDragging
. 如果您在用户完成滚动并停止后想要它scrollView
,请在scrollViewDidEndDragging
and中执行scrollViewDidEndDecelerating
。
于 2013-09-26T16:09:35.497 回答
3
scrollView 始终可见的矩形如下:
CGRectMake(scrollview.contentOffset.x, scrollview.contentOffset.y, scrollview.frame.size.width, scrollview.frame.size.height)
于 2013-09-26T15:44:33.360 回答
2
a 的可见矩形UIScrollView
是myScrollView.bounds
。正如其他答案所暗示的那样,无需使用CGRectMake
或使用该contentOffset
属性(尽管它确实将您带到了同一个地方)。但是,如果滚动视图允许缩放,那么您需要转换矩形以考虑缩放。此答案中提供了许多应用转换的解决方案。
于 2015-09-21T00:17:08.360 回答
0
我不完全确定你在问什么,但如果你需要在滚动时获取内容偏移量,你可以使用委托方法:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
每次 contentOffset 更改时都会调用它。
或者你可以使用
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
要知道contentOffset
滚动视图停止减速的秒数。
或者
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
contentOffset
当用户停止平移它时知道滚动视图的。
于 2013-09-26T15:31:20.133 回答