2

我很难找到接触点。

我有一个loadView()设置 16 个图块(16 UIImageView)的功能。

然后在函数中:

- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
    // Retrieve the touch point

    UITouch *touch=[[event allTouches]anyObject];
    CGPoint point= [touch locationInView:touch.view];
    CGRect frame = [self frame];  // Error this Line
}

我已经使用 frame 来识别使用 frame-origin 按下了哪些框架/图块。

但是这一行:

CGRect frame = [self frame];

让我发疯。请有人告诉我该怎么做。(解释和为什么不工作)。请。

4

3 回答 3

4

用这个 :

UITouch *touch=[[event allTouches]anyObject];
CGPoint point= [touch locationInView:self.view];
于 2014-01-05T09:15:05.773 回答
2

似乎您正试图在 UIViewController 子类中的方法中执行此操作。该行应该是:

[self.view frame];
于 2009-10-01T08:54:57.377 回答
0

我仍然不清楚你想要什么,但让我们看看这是否对你有帮助。

如果您要移动不同的对象,那么为什么不创建另一个类并使用 UIView 继承它并在子类中定义触摸功能。示例标题

...
Tile : UIView
...

示例类实现

...
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:[self superview]];

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:[self superview]];
    self.center = touchPoint;
}
...

或者,如果您只想要 UIViewController 中的触摸点。

UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:[self.view]];
于 2014-08-29T21:53:55.037 回答