У меня в основном есть массив объектов UIView, которые находятся на экране. Они перемещаются случайным образом вокруг, и я хотел бы иметь линию, соединяющую каждый объект.iOS: Как нарисовать линию между двумя движущимися объектами?
В моем методе drawRect UIView, который содержит все движущиеся объекты, я рисую линии между ними. Тогда, как только это будет сделано ниже метод вызывается для каждого объекта
-(void)animateIcon:(Icon*)icon{
[UIView animateWithDuration:(arc4random() % 100 * 0.1)
delay: 0.0
options: UIViewAnimationOptionCurveEaseIn
animations:^{
icon.frame = CGRectMake((arc4random() % 320), (arc4random() % ((int)self.frame.size.height - 70)), 52, 52);
}
completion:^(BOOL finished){[self animateIcon:icon];}];
}
По существу я хотел линии оставаться прикреплены к объектам, как они двигаются. Если бы я мог называть [self setNeedsDisplay]; каждый раз, когда кадр вообще менялся, метод drawRect будет перерисовывать линии, но я не могу понять, как это сделать.
Я попытался установить наблюдатель на изменении кадра (как показано ниже), но это только получает срабатывает, как только анимация закончится, и не улавливает изменения кадров как объект середины анимации
[icon addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOld context:NULL];
любой орган получил какие-то идеи?