Следующий код имеет (как минимум один) глубокий недостаток: как только CGFrame
установлено, его местоположение фиксируется.
-(UIImageView*) ownImageView {
if (ownImageView == nil) {
ownImageView = [[UIImageView alloc] initWithFrame:
CGRectMake(self.xPosition, self.yPosition,
[constants cardWidth], [constants cardHeight])];
[ownImageView setImage:self.faceImage];
}
return ownImageView;
}
Я хотел бы повторно использовать UIImageView
(после создания я не хочу его перераспределять). Вместо этого я хотел бы изменить координаты x, y кадра, который он содержит.
Следующий код работает нормально, однако кажется небрежно расточительным
-(UIImageView*) ownImageView {
[ownImageView removeFromSuperview];
ownImageView = [[UIImageView alloc] initWithFrame:
CGRectMake(self.xPosition, self.yPosition,
[constants cardWidth], [constants cardHeight])];
[ownImageView setImage:self.faceImage];
return ownImageView;
}
Вопрос : Как бы вы справились с этим, сохранив как можно больше ленивых экземпляров?
Вид представляет собой двухмерный прямоугольник, движущийся вдоль экрана. Я хотел бы представить «перемещение», просто изменив позицию X / Y существующего представления вместо замены его новой копией.