iPadアプリの1つの画面でさまざまなデバイスの向きを処理する方法を理解するのに苦労しています。これが私の状況です:
〜この画面はすべて、1つのラベルを除いて、バネと支柱を使用して完全に回転しています。このラベルの問題は、(対角線上に)非正統的な方法で移動させたいため、スプリングとストラット(またはマスクのサイズ変更が機能しない)であるということです。
〜私がこれを行うことを検討している方法は、そのようなものです:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)newInterfaceOrientation duration:(NSTimeInterval)duration
{
if(UIInterfaceOrientationIsLandscape(newInterfaceOrientation))
{
self.myScreenLabel.frame = CGRectMake(600,0,400,100);
}
else {
self.myScreenLabel.frame = CGRectMake(...//something); }
}
同様のロジックでviewDidLoadにもチェックを入れます。 If in portrait mode, put label at... else put label at...
。
これでうまくいくと思います。ただし、これを行うためのより適切に設計された方法があるかどうか疑問に思っています。上記の方法では、どこにでも番号がハードコーディングされています。したがって、これを行うためのより良い方法はありますか?また、この方法では、縦向きモードのストーリーボードにラベルを完全に配置しているという事実を利用しておらず、変更する必要があるのは横向きだけです。
より良いデザインに関する提案はありますか?