uiimageview刷新所有其他图像视图

时间:2014-02-27 22:31:15

标签: ios iphone objective-c uiimageview

我正在创建一个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];
            }
}

如果需要更多代码来提供更好的答案,请告诉我

1 个答案:

答案 0 :(得分:1)

这可能是使用自动布局的结果(您可以在IB中关闭它以查看这是否是问题)。使用自动布局时,不应设置任何帧。如果这样做,只要需要重绘视图,所有帧都将重置为约束定义的帧。如果要打开自动布局,则应通过修改约束而不是直接设置框架来更改大小或位置。