3

私は以下を含むモーダルビューコントローラーを持っています:

    imagePickerController_ = [[UIImagePickerController alloc] init];
    imagePickerController_.delegate = (id)self;
    imagePickerController_.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController_.view.frame = CGRectMake(0.0f, -20.0f, 320.0f, 480.0f);
    [self.view addSubview:imagePickerController_.view];

なんらかの理由でビューが低すぎるため、手動でビューを20px上に移動する必要があることに気付くでしょう。

モーダルビューコントローラーを閉じると、下のビューコントローラーのビューに含まれるすべてのビューが20px上に押し上げられます(ビュー自体は同じ元の座標を保持しますが)。

言い換えれば、私はビューを制御するビューコントローラを持っていAますA。ビューには、ビュー、、およびAも含まれます。次に、モーダルビューコントローラーをビューコントローラーにプッシュして、上記のコードでイメージピッカーコントローラーを表示します。モーダルビューコントローラが閉じられると、ビューコントローラはビ​​ューがそのままの状態で再び表示されますが、ビューは20px上に移動します。これを防ぐにはどうすればよいですか?BCDXAXAABCD

4

2 に答える 2

1

私は問題が何であったかを発見しました。残念ながら、私の投稿からエラーを確認するのは困難でした。

私はimagePickerControllerモーダルに提示されていた別のビューコントローラーに配置していました。私は現在、モーダルで直接提示していimagePickerControllerます。

imagePickerController_ = [[UIImagePickerController alloc] init];
imagePickerController_.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController_.delegate = (id)self;
[self presentModalViewController:imagePickerController_ animated:YES]; 

面倒でごめんなさい。これが他の人が同じ間違いをしないのに役立つことを願っています!

于 2012-04-23T16:06:08.293 に答える
0

追加するときは、imagePickerController_フレームをViewControllerの境界に設定する必要があると思います。のようにimagePickerController_.view.frame = self.view.bounds


ビュー座標系の詳細については、ビューとウィンドウのアーキテクチャを参照してください。

命名規則についても読んでください。名前imagePickerController_はかなり奇妙です。あなたが意味するかもしれません_imagePickerController。そして、私はこの目的のためにプロパティを使用する方が良いと思います。したがって、でアクセスしself.imagePickerControllerます。

また、他のViewControllerからのViewControllerの表示も確認してください。

于 2012-04-20T20:11:13.517 に答える