0

ペイントアプリケーションを作成しようとしていて、色の変数を見てUIViewに渡しますが、viewControllerに色を変更するボタンがありますが、色の変更を渡す方法を見つけることができますUIviewへ:

ViewController (これは問題なく動作します):

paint *canvas=[[paint alloc]initWithFrame:frame];
    [self.view addSubview:canvas];
    canvas.colorSelected=colorSelected;

色の選択を変更するボタンがあります:

  • (IBAction)colorSelection:(id)送信者

ただし、canvas.colorSelected のインスタンスは canvas.colorSelected が設定された後に解放されるため、IBAction から色の選択を変更するにはどうすればよいですか。別のインスタンスを作成すると、colorSelected の同じポインターを指しません。私の質問は、viewController の ibaction から colorSelected を変更するにはどうすればよいですか?

4

2 に答える 2

0

ペイントオブジェクトへの参照を保持するには、ViewControllerでインスタンス変数を作成する必要があります。投稿されたコードのようにローカル変数を使用する代わりに、ペイントオブジェクトをインスタンス変数に割り当てます。次に、ボタンハンドラーでcolorSelected、インスタンス変数のプロパティを呼び出して、ビューの色を更新できます。

于 2012-10-19T22:20:56.340 に答える
0



背景色を設定したい場合、何をしようとしているのか理解するのは本当に難しいです:

canvas.backgroundColor = colorSelected

colorSelected値を設定して色を変更したい場合は、クラス
のセッターをオーバーライドする必要があります。次の ようにします。paint

in Paint.m

- (void) setColorSelected:(UIColor*) color {
    _colorSelected = color;
    self.backgroundColor = color;
}

canvas.colorSelected=[UIColor redColor];キャンバスを実行すると、変数が設定され、colorSelected背景色も変更されます

于 2012-10-19T21:22:41.037 に答える