我有一个滚动视图,我添加了一些视图 当用户滚动如何获取当前可见视图的标记时。 那么我可以在那个视图中添加一些东西......
就像在表视图中获取indexpathrow一样..
怎么做..?
由于
答案 0 :(得分:2)
您基本上想要检查UIScrollView
内的子视图的框架是否与滚动视图的框架相交(如果您只想确定部分可见性),或者框架是否包含在另一框架中(如果您需要)确定完全可见性。)
但是,为了检查子视图的帧是否相交和/或是否包含在scrollview的框架中,您需要将其从scrollview中的局部坐标转换为scrollview外部的全局坐标。
这可能很令人困惑,所以这里有一些代码。这将遍历滚动视图的所有子视图,并打印出它是完全可见还是部分可见:
for (UIView *subview in scrollView)
{
CGRect globalRect = CGRectOffset(subview.frame, -scrollView.contentOffset.x, -scrollView.contentOffset.y);
CGRect scrollViewBounds = CGRectMake(0.0f, 0.0f, scrollView.bounds.size.width, scrollView.bounds.size.height);
if (CGRectContainsRect(scrollViewBounds, globalRect)) {
NSLog(@"FULLY VISIBLE");
} else if (CGRectIntersectsRect(scrollViewBounds, globalRect)) {
NSLog(@"PARTIALLY VISIBLE");
}
}
当用户滚动内容时,您可以将其放在UIScrollViewDelegate
方法中进行这些检查。