0

こんにちは、私の iPad アプリケーションには次の設定があります。

UISplitViewController DetailSide-> SomeDetailViewController-> サブビューを [SomeDetailViewController.view addSubview:AnotherViewController.view] として追加

  1. 「AnotherViewControllerビュー」が表示されているときに起動した後、その初期寸法は、現在のデバイスの向きに関係なく、そのビューXIBを保存した最後の向き(インターフェイスビルダーの縦向き/横向きビュー)と常に同じです。

  2. また、追加されたサブビュー(AnotherViewController.view)のフレームをリセットすると、つまりA.-[SomeDetailViewController viewDidLoad]で現在のデバイスの向きを確認しますB.AnotherViewController.viewのフレームを必要なサイズに合わせて設定します。その後、方向の変更時に適切にサイズ変更されません(XIB自動サイズ変更ボックスでスプリング/ストラットを正しくセットアップしています)。

  3. 上記のステップ 2. を実行した後、下からの AnotherViewController.view の約半分がタッチに応答しないことがわかります。フレームの変更により、応答する座標がめちゃくちゃになるように見えます。

  4. すべてのView Controllerのすべての向きに対してYESを返すように「shouldAutorotateToInterfaceOrientation」を実装しています。

ティア。

4

2 に答える 2

0

自動サイズ変更プロパティをAnotherViewController.view次のように設定する必要があります。

AnotherViewController.view.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

于 2011-05-25T08:47:48.507 に答える
0

XIB には、インスペクターで SPlitview Detail/Master を変更するオプションがあります。また、サブビューとして追加すると、分割ビューのデリゲート メソッドを取得できません。そのためには、ウィンドウに追加する必要があります。を使用してウィンドウからすべての要素を削除してみてください

[[[[UIAppDelegate ウィンドウ] サブビュー] objectAtIndex:0] removeFromSuperview]; self.appDelegate.splitViewControllerObject = [[UISplitViewController alloc] init];

UINavigationController *rootNav = [[UINavigationController alloc]initWithRootViewController:masterview]; UINavigationController *detailNav = [[UINavigationController alloc]initWithRootViewController:detailview];

    self.appDelegate.splitViewControllerObject.viewControllers = [NSArray arrayWithObjects:rootNav, detailNav, nil];
    self.appDelegate.splitViewControllerObject.delegate = detailviewobj;

    [UIAppDelegate.window addSubview:self.appDelegate.splitViewControllerObject.view];

幸運を....

于 2011-05-12T14:09:37.267 に答える