2016-05-19 8 views
0

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のサイズはどのように取得できますか?

答えて

0

アップルは、とCompactモードで異なる位置を達成するために、Size classを使用することを推奨しています。 OSがアプリケーションを強制終了する手動計算で大量のメモリが必要な場合は、計算が1秒間に60回実行されます。

パフォーマンスを向上させるには、autolayoutを使用します。フルスクリーンモードが最適です。

まだあなたが

- (void)layoutSubviews 

方法

でそれを行うこと、独自の計算を行いたい場合
関連する問題