所以我以编程方式创建了一个 UIImageView 并将它放在一个数组上。在 touchesMoved 中,我将 UIImageView 的 x 位置设置为触摸的 x 位置。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
for (UIImageView *b in _blocks) {
if ( b.image != wall) {
movingimage = b;
movingimage.userInteractionEnabled = YES;
NSLog(@"touch");
}
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches]anyObject];
CGPoint location = [touch locationInView:touch.view];
CGPoint xlocation = CGPointMake(location.x, movingimage.center.y);
movingimage.center = xlocation;
}
如果不是使用以编程方式创建的 UIImageView,而是使用在 Interface Builder 中创建的 UIImageView,则此代码可以正常工作。但是当我使用代码创建 UIImageView 和 tochesBegan 从 UIImageView 开始时,来自 touchesMoved 的触摸坐标变得疯狂,并且 imageView 在两个位置之间快速闪烁。
谢谢阅读。