すでに GitHub にアップしているソースには含まれているのですが、Xamarin.iOS で画面の回転を検知する方法を紹介します
moonmile さんがすでに XamarinでAndroid/iOS/Windowsストアの回転に対応する | Moonmile Solutions Blog の記事の中でこの手の実装方法を共有されているのですが、まだ Xamarin.Forms が出る前の内容だったので今回は Xamarin.Forms を生かしたもう少し簡単な方法になります
やることは ViewRenderer に下記のコードを書くだけ!
/// <summary> /// Element 変更イベントハンドラ /// </summary> /// <param name="e">イベント引数</param> protected override void OnElementChanged(ElementChangedEventArgs<ArcStepper> e) { base.OnElementChanged(e); var page = this.Element.ParentView.ParentView as Page; if (page == null) { return; } page.SizeChanged += this.OnSizeChanged; } /// <summary> /// サイズ変更イベントハンドラ /// </summary> /// <param name="sender">イベント発行者</param> /// <param name="e">イベント引数</param> private void OnSizeChanged(object sender, EventArgs e) { // 再描画する this.SetNeedsDisplay(); }
Draw メソッドがレスポンシブデザイン対応されていればこれだけで大丈夫でした
簡単ですね!
変更後のサイズに応じて縦横も判定できると思うので色々応用できそうです