別の UIImageView を含む UIImageView を作成するとします。ただし、サブビューは最初のビューよりも大きくなっています。
緑色のサブビューは、そのスーパービューである黒い四角形よりもかなり大きくなっています。左上の黒い四角だけをタッチすると、期待どおりの「touchbegan image1」が表示されます。黒い四角と緑の四角が重なっている領域をタッチすると、期待通りの「touchbegan image1」と「touchbegan image2」が表示されます。 これが私の質問です。 緑の四角だけが存在する黒い四角の枠の外側の領域に触れると、出力が得られません。したがって、TouchesBegan は image1 と image2 のどちらに対しても呼び出されません。この場合、 image1 (Black) のサブビューとして image2 (Green) を維持しながら、緑色の四角形のみに触れると、 image2 (Green) に対して TouchesBegan が呼び出されるようにします。それは可能ですか?
MyImage image1 = new MyImage(new RectangleF(0,0,200,200), "image1");
image1.BackgroundColor = UIColor.Black;
this.View.AddSubview(image1);
MyImage image2 = new MyImage(new RectangleF(50,50,500,500), "image2");
image2.BackgroundColor = UIColor.Green;
image1.AddSubview(image2);
public class MyImage : UIImageView
{
public MyImage ( RectangleF frame, string _Name ) : base(frame)
{
Name = _Name;
UserInteractionEnabled = true;
}
public override void TouchesBegan (NSSet touches, UIEvent evt)
{
base.TouchesBegan (touches, evt);
Console.WriteLine("touchbegan " + Name);
}