iphone – 确定屏幕上的点是否在特定的UIScrollView子视图内

iphone – 确定屏幕上的点是否在特定的UIScrollView子视图内,第1张

概述UIScrollView包含几个UIView对象;如何判断屏幕上不是由触摸产生的点是否在scrollview的特定子视图内?到目前为止,无论如何,确定点是否在子视图中始终返回父滚动视图的子视图数组中的第一个子视图,即坐标是相对于scrollview而不是窗口. 这是我试过的(编辑) -(UIView *)viewVisibleInScrollView { CGPoint point = UIScrollVIEw包含几个UIVIEw对象;如何判断屏幕上不是由触摸产生的点是否在scrollvIEw的特定子视图内?到目前为止,无论如何,确定点是否在子视图中始终返回父滚动视图的子视图数组中的第一个子视图,即坐标是相对于scrollvIEw而不是窗口.

这是我试过的(编辑)

-(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;}
解决方法 看起来你的点是相对于窗口,你想要它相对于当前视图. 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;}
总结

以上是内存溢出为你收集整理的iphone – 确定屏幕上的点是否在特定的UIScrollView子视图内全部内容,希望文章能够帮你解决iphone – 确定屏幕上的点是否在特定的UIScrollView子视图内所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1083927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存