そこで、プログラムで 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 を作成し、tochesBegan が UIImageView で開始すると、touchesMoved からのタッチ座標が狂ってしまい、imageView が 2 つの場所の間で非常に速く点滅します。
読んでくれてありがとう。