我一直在搜索 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 解决了这个问题。
再见!