UITouch/UIEvent - задержка события?

Есть ли способ отложить событие этой функции touchBegan?

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *followTouch = [[event allTouches] anyObject];

bull.center = [followTouch locationInView:followTouch.view];}

person Cody Taylor    schedule 20.04.2015    source источник
comment
Зачем вам отсрочка? Вы ищете dispatch_after()?   -  person Victor Engel    schedule 20.04.2015
comment
У меня есть UIImageView, который преследует позицию другого UIImageView, которого касаются и перетаскивают на экран.   -  person Cody Taylor    schedule 20.04.2015
comment
Я не понимаю, какое отношение имеет UIImageView к чему-либо.   -  person Victor Engel    schedule 20.04.2015
comment
UIImageView - это объект с центральным свойством = UITouch location   -  person Cody Taylor    schedule 20.04.2015
comment
Мне просто интересно, можно ли отложить UIEvent touchesBegan?   -  person Cody Taylor    schedule 20.04.2015
comment
Похоже, вам действительно нужен UIPanGestureRecognizer для запуска анимации. Вероятно, самый простой способ — использовать один из методов анимации UIView.   -  person Victor Engel    schedule 20.04.2015


Ответы (1)


Вот пример. Он анимирует движение квадрата через полсекунды после перемещения касания:

-(void)pan:(UIPanGestureRecognizer *)pan {
    CGPoint touchLocation = [pan locationInView:self.view];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        self.square.center = touchLocation;
    });
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIView *square = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
    square.backgroundColor = [UIColor redColor];
    self.square = square;
    [self.view addSubview:square];
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    [self.view addGestureRecognizer:pan];
}
person Victor Engel    schedule 26.04.2015