私はあなたがタッチで異なる文字(の形でUILabels
)を動き回らなければならないアプリを持っています。さまざまなUILabel
オブジェクトが存在するため、このコードを作成してみました。これにより、ラベルがくっつくのを防ぎます。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchPoint = [touch locationInView: self.view];
bool pickup = YES;
if (pickup) {
if (CGRectContainsPoint(a.frame, touchPoint)) {
a.center = touchPoint;
pickup = NO;
}
}
if (pickup) {
if (CGRectContainsPoint(x.frame, touchPoint)) {
x.center = touchPoint;
pickup = NO;
}
}
if (pickup) {
if (CGRectContainsPoint(x2.frame, touchPoint)) {
x2.center = touchPoint;
pickup = NO;
}
}
if (pickup) {
if (CGRectContainsPoint(eq.frame, touchPoint)) {
eq.center = touchPoint;
pickup = NO;
}
}
if (pickup) {
if (CGRectContainsPoint(b.frame, touchPoint)) {
b.center = touchPoint;
pickup = NO;
}
}
}
しかし、ここにいくつかの問題があります:
移動はスムーズではありません。指が画像を移動すると、ラベルの移動が停止します(明らかに
if (CGRectContainsPoint(a.frame, touchPoint))
また、別のラベルを移動しているときにラベルをバイパスすると、バイパスしたラベルが指で移動し始めます。
どうすればこれを行うことができますか、私は今私がしていることよりも良い方法があることを知っています...