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


如果需要更多代码才能给出良好答案,请告诉我

最佳答案

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

10-08 11:23