1

半日近く頭を悩ませていますが、まだ解決策を認識できません。的外れな質問でしたらすみません...

ターゲット:デバイスの向きに関係なく、常に横向きモードでグラフを表示します。この図に示すように、x 軸と y 軸を表示したいと思います。より多くのデータを表示するために x 軸が y 軸よりも多くのスペースをどれだけうまく取っているかはわかりませんが、著者がこれをどのように行ったかについては言及されていません。

私が今まで持っているものは次のとおりです。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}

またviewDidLoad、ビューを -90 度回転させてみました。

self.view.transform = CGAffineTransformMakeRotation(-(M_PI * (90) / 180.0)); 

ロードすると、私のビューは次のようになります。ここで、Datex 軸とCalories Burnedy 軸です。

読み込み時の図を表示

シミュレーターを回転させると、非常に奇妙な外観になります。

シミュレータのローテーションの表示

どうすればこれを調整できるか教えてください。どうもありがとう。


*適切な回答を受け取った後に編集: もう 1 つ言及したいことは、図 2 で言及した問題を解決するには、次のように書くだけです。

myHostingGraph.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

これは、オリエンテーションをより美しく行うための非常に重要な行です。参照元:stackoverflow.com/a/10954432/437146

4

1 に答える 1

1

以下を使用して、UIViewController 全体を横向きのみに設定しないのはなぜですか。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
              return (interfaceOrientation != UIInterfaceOrientationPortrait && interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
   }
    else return YES;
}

そして、本当に必要な場合は、縦向きに変えたら、ラベルを変換/回転して、グラフの上に移動します。IBOutlet UILabel *yourLabel; yourLabel.center=CGPointMake(yourGraph.center.x, 10);

于 2012-09-16T19:30:57.240 に答える