これは初心者の質問に聞こえるかもしれませんが、私は iOS 開発に不慣れです。
iPad ビューに UIWebView と UITableView があります。で、このshouldAutorotateToInterfaceOrientation
ように見栄えがするようにサイズを変更します。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if( interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
CGRect f = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height / 2);
self.mTextView.frame = f;
f = CGRectMake(0, self.view.frame.size.height / 2, self.view.frame.size.width, self.view.frame.size.height / 2);
self.mTableView.frame = f;
}
if( interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
CGRect f = CGRectMake(0, 0, self.view.frame.size.width / 2, self.view.frame.size.height);
self.mTextView.frame = f;
f = CGRectMake(self.view.frame.size.width / 2, 0, self.view.frame.size.width / 2, self.view.frame.size.height);
self.mTableView.frame = f;
}
return YES;
}
質問: 最初の読み込みでは、テーブル ビューは正しいサイズで描画されますが、ポートレート モードに切り替えてからランドスケープ モードに戻ると、UITableView はフレームで指定された幅よりも広くなります。では、なぜこれが起こり、どのように修正するのでしょうか?
PS。同じ方法ですべてのセルのフレームを設定しようとしましたが、役に立ちませんでした。
PSS。これはデバイスでのみ発生し、シミュレーターでは UITableView が正しく表示されます