我正在创建一个iphone应用程序,我创建了一个以编程方式创建新UIImageView
的方法,它工作得很好(嗯......有点好)但很明显这是一个问题。
每当调用该方法时,我在故事板中创建的每个其他UIImageView
都会刷新,这意味着,它们都会被放回原来放在故事板上的位置(它们应该随机移动) )
继承人的方法
- (UIImageView *)shootNewBullet {
UIImageView *newBullet = [[UIImageView alloc] initWithFrame:CGRectMake(80, playerShip.center.y,15,3)];
newBullet.Image=[UIImage imageNamed: @"bullet2.png"];
newBullet.hidden = NO;
[bulletArray addObject:newBullet];
[self.view addSubview:newBullet];
return newBullet;
}
heres where the method gets called
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
if (point.x > 101) {
bullets = [self shootNewBullet];
}
}
如果需要更多代码来提供更好的答案,请告诉我
答案 0 :(得分:1)
这可能是使用自动布局的结果(您可以在IB中关闭它以查看这是否是问题)。使用自动布局时,不应设置任何帧。如果这样做,只要需要重绘视图,所有帧都将重置为约束定义的帧。如果要打开自动布局,则应通过修改约束而不是直接设置框架来更改大小或位置。