ユーザーが行をタップしたときにUItableviewcontrollerにpickerviewを追加しています。私はそれを表示する次のコードを使用しています。 [self.view.window addSubview:languagePicker];デバイスの向きが変更されたときに、画面上のサブビュー位置を調整するにはどうすればよいですか?
CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
CGSize pickerSize = CGSizeMake(768.0, 216.0);
CGRect startRect = CGRectMake(0.0,
screenRect.origin.y + screenRect.size.height,
pickerSize.width, pickerSize.height);
self.languagePicker.frame = startRect;
// compute the end frame
CGRect pickerRect = CGRectMake(0.0,
screenRect.origin.y + screenRect.size.height - pickerSize.height,
pickerSize.width,
pickerSize.height);
self.languagePicker.frame=startRect;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationOptionTransitionNone forView:self.view.window cache:YES];
[self.languagePicker setFrame:pickerRect];
[UIView commitAnimations];
デバイスが縦向きにあるが、すぐに向きが変わると、すべてが追加ピッカービューを除いて、それ自体を調整する際の完璧な動作するようです。
私はデバイスの方向を取得し、古いビューを削除し、方向に応じて新しいものを追加することができますが、それは良い方法かどうかはわかりません。それ以外の効果的なやり方はできますか?
スミット
自動サイズ設定の詳細や詳細を教えてもらえますか? – slonkar
をご覧ください:http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.htmlそしてautoresizingMaskを探してください。 – samfisher
彼の投稿を見てみたいかもしれません:http://stackoverflow.com/questions/3069388/uiview-autoresizingmask-problem – samfisher