メインメニューを開く

差分

ページの作成:「 UIScrollViewから派生したカスタムビューを自作する際に、 なぜかSetZoomScale()やZoomToRect()などのメソッドが動かないときは、 だ…」


UIScrollViewから派生したカスタムビューを自作する際に、
なぜかSetZoomScale()やZoomToRect()などのメソッドが動かないときは、
だいたいデリゲートの「明示的な設定」を忘れている。

<source lang="csharp">
[Register(nameof(ZoomImageView))]
public class ZoomImageView
: UIScrollView
, IUIScrollViewDelegate // ← これだけではダメ
{
public ZoomImageView(IntPtr handle) : base(handle)
{
this.Setup();
}

public ZoomImageView(CGRect frame) : base(frame)
{
this.Setup();
}

public ZoomImageView(NSCoder coder) : base(coder)
{
this.Setup();
}

void Setup()
{
// これが重要。
// 明示的にデリゲートを自分自身に設定する。
this.Delegate = this;
}
}
</source>

[[category: Xamarin.iOS]]