私はaddsubview関数について検索していて、その関数を使用すると、実際にはView Controllerがそれ自体をリセットし、もちろん以前に作成されたすべてのオブジェクトをリセットすると言う人を見つけました。
これが私のコードです:
- (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]
ビューの代わりに「スーパービュー」を使用すると、問題が解決しました。
またね!