1

我一直在搜索 addsubview 函数,发现有人说使用该函数实际上会使视图控制器重置自身,当然还有之前创建的所有对象。

这是我的代码:

- (IBAction)CrearEst:(id)sender {
    for(int i=0; i< 10; i++)
    {
        float x = arc4random() %300;
        //float x = arc4random() %300;
        UILabel *estrella = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 4, 4)];
        estrella.tag = i;
        estrella.center = CGPointMake(x,100);
        estrella.text = @".";
        estrella.textColor = [UIColor whiteColor];
        [self.view insertSubview:(estrella) atIndex: 0];
    }
}

这很好用,但问题是,就像我之前说的,所有以前创建的对象,它的位置都被重置了,所以当我移动我的角色并执行该函数时,对象再次回到屏幕中间并且再次。

如果实际上有另一种方法可以做到这一点,我会很高兴听到它!

解决方案:经过数小时的尝试,我发现解决方案是将“self.view”替换为“self.view.superview”,这样你就会有这样的东西

[self.view.superview insertSubview:(estrella) atIndex: 0]

使用“superview”而不是 view 解决了这个问题。

再见!

4

0 回答 0