以下代码具有(至少一个)深度缺陷:一旦设置了CGFrame
,它的位置就是固定的。如何更新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
(创建一次,我不想realloc的话)。相反,我想改变它包含的帧的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;
}
问题:你将如何处理这个问题,同时保持尽可能多的懒实例化越好?
视图代表沿着屏幕移动的2D矩形。我想通过简单地改变现有视图的X/Y位置而不是用新副本替换它来表示“移动”。