私のiPhoneアプリでは、ポートレートからランドスケープまで様々なビューをいくつか取り直しています。これは、ユーザーがポートレート - >風景 - >ポートレート - >風景を(私はいくつかの数学はビューを再配置するように)行う場合、正常に動作します。iPhone/iPadで180フリップを検出
しかし、ユーザーがPortait - > Portraitを逆さまにする、またはLandscape Left - > Landscape Rightを使用すると、コードが機能しません。
180フリップを検出して無視できますか?あなたが期待しているとそうでない場合は、あなたのロジックが出てこないだろう。..
fromInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || fromInterfaceOrientation == UIInterfaceOrientationLandscapeRight
:
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
if ((fromInterfaceOrientation == UIInterfaceOrientationPortrait) &&
(UIDeviceOrientationIsPortrait(self.interfaceOrientation))
{
}
else if ((fromInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(fromInterfaceOrientation == UIInterfaceOrientationLandscapeRight) &&
(UIDeviceOrientationIsLandscape(self.interfaceOrientation)))
{
}
else
{
// Do something - it didn't flip 180.
}
}
これを無視することはできますが(@Jim Buck参照)、コードを正しく動作させないバグを修正する方が良いでしょう。おそらくちょっとしたことです。 – Eiko
まあ私の数学は前の位置に基づいているので、前の位置が動かなければ数学をやりたくない...ジムのコードでも私の無視するコードはうまくいかない... – mootymoots
ランドスケープチェックで、fromがLandscapeRightかLeftかを確認しています。肖像画では、あなたが肖像画の上下が見えないかどうかを確認していません。そしておそらく@Jim Buckが指摘したことに基づいて、あなたの括弧が正しく更新されていることを他の人が見ることができるようにあなたのコードを更新してください。 – lilbyrdie