コントローラーには、progressLineView と buttonsView という 2 つの UIView メンバーがあります。ある時点で、このメソッドを呼び出します。
- (void) drawPlayProgressLine{
progressLineView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 1, buttonsView.frame.size.height)];
progressLineView.backgroundColor = [UIColor whiteColor];
[buttonsView addSubview:progressLineView];
}
すべてが正常に機能し、ビューの位置を変更するメソッドもあります。
- (void) moveProgressLine{
CGRect frame = progressLineView.frame;
frame.origin.x++;
progressLineView.frame = frame;
}
メソッドが数回呼び出された後、ビューを開始位置に完全に移動するのではなく、もう一度moveProgressLine
呼び出したいと思うと、新しいビューが作成されます。drawPlayProgressLine
呼び出されるほどdrawPlayProgressLine
、画面に表示されるビューが増えますが、必要なのは 1 つだけです。
オブジェクトを 1 つだけ作成しているときに、これがどのように発生するのかわかりません。毎回新しいビューを作成する代わりに、ビューを移動するにはどうすればよいですか? そして別の質問: どうすればそれを完全に削除できますか (drawPlayProgressLine
メソッドが呼び出されて再度作成されるまで)