私はmonoTouch-iPadアプリケーションを構築していますが、開始インターフェイスの向きがわかりません。UIViewをプログラム的に正しい向きで表示するためのベストプラクティス
1つの問題は、アプリ起動時にUIDevice.CurrentDevice.Orientation
は常にUnknown
を返します。あなたのアプリがどの方向を向いているかはどうやって決められますか?私が今見つけたすべてのプロパティは、ポートレートモード、不明、ポートレートモードのフレームサイズを返すだけです(ランドスケープモードであっても)。
UIViewControllerのWillRotate
メソッドで2つのUIView(ランドスケープ用、1つはポートレート用)を作成し、これを変更しました。しかし、私のコード:
は、少なくともシミュレータでは、画面を回転させると「ちらつき」が発生します。
ビューをレイアウトするためのベストプラクティスはありますか?そして、私はShouldAutorotateToInterfaceOrientation
について知っていますが、私は多くのオーナーが描いたものをやっているので、これは私のためには機能しません。自動化されたときに壊れてしまいます(see my other question)。
私は今、コードですべてをやっているので、Interface-Builderを使用しないと本当に解決していただきたいと思います。
UPDATE:短期Descripton私が達成したいもの: APPSTART - >正しいFramsize(1024,748または768,1004)を知っている - >私のカスタムビューを追加する正しいフレームサイズで
アップデート2:シンプルで基本的なコードスニペット
public override void ViewDidLoad()
{
base.ViewDidLoad();
Console.WriteLine (this.InterfaceOrientation);
}
肖像画を返します。たとえシミュレータがランドスケープモードであっても。ちょうど私が本当にView.AutoresizingMaskまたはオーバーライドLayoutSubviewsを使用することをお勧めしますInterfaceOrientation
public override void ViewDidLoad()
{
if (this.InterfaceOrientation == UIInterfaceOrientation.Portrait
|| this.InterfaceOrientation == UIInterfaceOrientation.PortraitUpsideDown)
{
// portrait
}
else
{
// landsacpe
}
}
をチェックすることができ、あなたのUIViewControllerは、両方が本当にスムーズにすべてを遷移する内
を変更するたびに呼び出されます。 – basti
ownerdrawnビューでAutoresizingMaskを正しく使用するにはどうすればよいですか?そして、LayoutSubviewsをオーバーライドすることのメリットは何ですか? – basti
私はAutoresizing Masksで私が望むものを働かせることはできませんが、LayoutSubviewsでどのように作業すればよいですか?変換を使用するか、全体のビューを置換するか? – basti