尝试为iPhone应用程序提供一些基本的拖放功能。
我目前尝试这样做的代码如下:
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
self.center = location;
}
这段代码的结果是,被触摸的UIView在跟随触摸时闪烁。玩了一会儿之后,我还注意到UIView似乎从屏幕上的0,0位置闪烁到了当前触摸的位置。
你知道我做错了什么吗?
发布于 2009-06-11 09:17:20
center属性需要在superview的坐标系中指定,但是您已经向touch事件请求了您的子视图的位置。取而代之的是根据superview的坐标来请求它们,如下所示:
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.superview]; // <--- note self.superview
self.center = location;
}
https://stackoverflow.com/questions/979555
复制相似问题