1

どうすればいいのか本当にわからない UIView に問題があります。

私の問題を説明するのは無駄なので、前後のスクリーンショットを次に示します。どういうわけか、画像が選択された後、UIView は interfacebuilder で定義されたレイアウトを取得します。画像が選択される前は、何らかの理由で定義されたレイアウトに従っていません。

imagePicker を使用して画像を選択する前:.................................................画像を選択した後:

前| |ここに画像の説明を入力

そうそう、それが基本的に問題です。黒い四角は他の画像で、どのようにすべきか、どのようにすべきでないかがわかります。画像の 1 つが切り取られています (通常は「SIM なし」ラベルの後ろにあります)。実際の画像を隠すためにそれらを配置しただけです。スクリーンショット。

だから多分私がここでやっている2つのことに関連しています。

  1. 選択した画像のサイズを 320 ~ 480 に変更し、サーバーにアップロードする前に小さい UIImageView に配置します。
  2. ユーザーが textField に書き込んでいる場合、ビュー全体がアニメーション化されるため、キーボードは textFields を非表示にしません。

アップデート:

これは、画像やテキストフィールドのサイズ変更に関係のない UIView で発生することに気付きました。これは、3 つのボタンと 2 つのラベルしかない UIView でも発生しています。たった5つの要素。3 つのボタンは、画像付きのカスタム モードです。3つの画像〜ボタンと2つのラベル....

Stackoverflowers 仲間の助けと提案をありがとう!!! (Stackoverflowerers?) ここでどのように処理を進めるかについてはまったくわかりませんが、viewDidLoad で UIView を変換して無駄にしました。

更新 2:

ビューからビューへの移行に使用するコードに何か問題があり、そこに含まれる要素とは何の関係もないのではないかと考え始めました。最初のビューを除くすべてのビューで発生しているためです。ビューの遷移に使用するコードは次のとおりです。

- (void) flipToUploadView {

UploadViewController *aUploadView = [[UploadViewController alloc] initWithNibName:@"UploadView" bundle:nil];
[self setUploadViewController:aUploadView];
[aUploadView release];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES];
[uploadViewController viewWillAppear:YES];
[viewController viewWillDisappear:YES];
[viewController.view removeFromSuperview];
[self.window addSubview:[uploadViewController view]];
[viewController viewDidDisappear:YES];
[uploadViewController viewDidAppear:YES];
[UIView commitAnimations];
}
4

1 に答える 1

0

申し訳ありませんが、コメントするのに十分な評判がありませんが、両方のビューが同じペン先ですか?
そうでない場合、InterfaceBuilder のステータス バーをシミュレートするのを忘れて、正しく描かれていない可能性はありますか? だからポジションが違うの?

そして、トミーが意味することは、通常
[self presentModalViewController:uploadViewController animated:YES];
、すべての関数呼び出し (willappear、didappear、willdissappear ...) が自動的に呼び出されるよりも、ModalViewcontroller を使用してビューを変更すること
だと思いますが、これは間違った表示の原因ではないと思います

于 2011-03-03T21:55:06.877 に答える