モノタッチでCoreGraphicsを使用してボタンを作成しようとしています。ボタンを押したときにボタンの色を変更する方法がわかりません。TouchesBegan
とメソッドをオーバーライドしようとしTouchesEnded
ましたが、色を変更する方法がわかりません。
1 に答える
5
背景色は2つの方法で処理できます。BackgroundColorプロパティを設定するだけです。これにより、色が自動的に変更されます。または、FillRectに使用するプライベート変数として色を保存している場合は、SetNeedsDisplayを呼び出してDrawを強制的に呼び出す必要があります。
public override void TouchesBegan (MonoTouch.Foundation.NSSet touches, UIEvent evt)
{
base.TouchesBegan (touches, evt);
this.BackgroundColor = UIColor.Green;
backColor2 = UIColor.Yellow;
this.SetNeedsDisplay ();
}
public override void TouchesEnded (MonoTouch.Foundation.NSSet touches, UIEvent evt)
{
base.TouchesEnded (touches, evt);
this.BackgroundColor = UIColor.Red;
backColor2 = UIColor.Blue;
this.SetNeedsDisplay ();
}
public override void Draw (RectangleF rect)
{
base.Draw (rect);
using (CGContext context = UIGraphics.GetCurrentContext ()) {
RectangleF rect2 = this.Bounds;
rect2.X += 10;
rect2.Y += 5;
rect2.Width -= 20;
rect2.Height -= 10;
backColor2.SetFill ();
context.FillRect (rect2);
}
}
于 2012-05-08T02:41:36.387 に答える