Kyl*_*yle 10 iphone objective-c ipad
UIScrollView包含几个UIView对象; 如何判断屏幕上没有触摸生成的点是否在滚动视图的特定子视图内?到目前为止,尝试确定点是否在子视图中总是返回父滚动视图的子视图数组中的第一个子视图,即坐标是相对于滚动视图而不是窗口.
这是我尝试过的(编辑过的)
-(UIView *)viewVisibleInScrollView
{
CGPoint point = CGPointMake(512, 384);
for (UIView *myView in theScrollView.subviews)
{
if(CGRectContainsPoint([myView frame], point))
{
NSLog(@"In View");
return myView;
}
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
Kri*_*kel 14
看起来你的点是相对于窗口的,并且你想要它相对于当前视图.convertPoint:fromView:应该有所帮助.
这里可能有错误,但看起来应该是这样的:
-(UIView *)viewVisibleInScrollView
{
CGPoint point = CGPointMake(512, 384);
CGPoint relativePoint = [theScrollView convertPoint:point fromView:nil]; // Using nil converts from the window coordinates.
for (UIView *myView in theScrollView.subviews)
{
if(CGRectContainsPoint([myView frame], relativePoint))
{
NSLog(@"In View");
return myView;
}
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7067 次 |
| 最近记录: |