iOS(Objective-C)アプリケーションを改善しようとしています。 iPhone/iPodではすべてがうまくいくが、問題はiPadのためだ。detailView(splitView)内にある場合は、位置をUILabelに設定する方法はありますが、viewDidLoadとwillRotateToInterfaceOrientationに問題があります。
iPadでは、SplitViewを使用してindexTable.h
をマスター、PlayGround.h
を詳細として呼び出しました。 PlayGroundの中で、私はいくつかのクラス(例えばinsideView)を呼び出しましたが、アプリを横向きに(iPadで)起動すると、viewDidLoad内にUILabelsがあります(これは別のデバイスでは別のデバイスです)。
willRotateToInterfaceOrientation
を呼び出すときに、私は
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration {
//for iPad landscape i call the last mentioned values, because for portrait all the labels change their positions
}
を持っているので、私はinsideViewを使用
self.labelAirName.frame = CGRectMake((self.insideView.bounds.size.width/2), 110, self.insideView.bounds.size.width/2, 30);
self.labelMaterialName.frame = CGRectMake((self.insideView.bounds.size.width/2), 80, self.insideView.bounds.size.width/2, 30);
self.airLabel.frame = CGRectMake((self.insideView.bounds.size.width/2)-95, 110, 90, 30);
self.materialLabel.frame = CGRectMake((self.insideView.bounds.size.width/2)-95, 80, 90, 30);
、それがうまく動作しますが、私は起動時に、サイズが異なっています。
splitviewには問題がありますか? DetailViewのサイズはどのように取得できますか?