Ios 如何根据x,y(触摸移动)查看对象
我想根据XPO和YPO使用以下方法在视图中获取Ios 如何根据x,y(触摸移动)查看对象,ios,xcode,touchesmoved,uievent,Ios,Xcode,Touchesmoved,Uievent,我想根据XPO和YPO使用以下方法在视图中获取UIImageView(或我拥有的任何内容): - (void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event { CGPoint tappedPt = [[touches anyObject] locationInView:viewIndex]; int xPos = tappedPt.x; int yPos = tappedPt.y; NSLo
UIImageView
(或我拥有的任何内容):
- (void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
CGPoint tappedPt = [[touches anyObject] locationInView:viewIndex];
int xPos = tappedPt.x;
int yPos = tappedPt.y;
NSLog(@"xPos %i yPos %i ", xPos, yPos);
// do something with xPos and yPos like add them to an array
}
非常感谢 如果您知道UIImageView对象的帧,检查点是否位于某个矩形中应该不会太困难
但是,如果您尝试创建UIView的子类,请向其添加一个图像。而不是在上面添加UIImageView对象,并在这个UIView的子类中而不是在UIViewController类中实现touch方法?您可以获得主视图的所有子视图。然后确定触摸点是否在子视图中
for(UIView *aView in [self subviews])
{
if(CGRectContainsPoint(aView.frame, tappedPt))
{
return aView;
}
}
但它有一个问题。如果多个子视图重叠,则只能获得一个视图。您可以修改代码以获得视图数组。我认为没有任何东西可以遍历子层次结构。您可以使用UIView方法减少一点工作量:-
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
其中event可以是nil,但您仍然必须对每个孩子以及潜在的后代进行该测试。您的意思是根据这些接触点移动一些视图吗?不,我想知道,每次我移动手指时,(因此我得到x和y)如果有uiimageview或没有,如果有uiimageview,我会得到它并调整它的大小。但我知道有一种最简单的方法可以做到这一点,但找不到方法,这听起来像“对象在此帧存在”感谢回复。当你想起这一点时,别忘了让其他人知道。:)你真的应该这样做!!!没有办法,那更容易
CGRectContainsPoint
已经是您要查找的内容。要检查它是否是UIImageView,只需插入if([aview iskindof类:[UIImageView类])