2012-03-06 13 views
0

xibからロードされたUISwitchが私のビーにあります。それはxの位置がゼロより大きく、iOS 5シミュレータでは正常に見えます。しかし私が4.3シミュレータでそれを実行しようとすると、UISwitchの位置がゼロに等しいように見えますiOS 5とiOS 4.3ではUIが異なって見える

どこに問題がありますか?

答えて

6

としてだけでなく、外観の自分の変化に基づいて位置を調整することができます問題であるならば、UISwitch ESクイックスクリーンショットの比較に基づいてのiOS 4と5の間に縮小しています、それらは約94pt幅であり、現在は76ptしかありません。したがって、自動サイズ調整マスクごとに右揃えのスイッチがある場合は、5よりも4で左にさらに伸びます。

悲しいことに、94ptのウィジェットの設計以外にはほとんどできませんインターフェイスビルダはレイアウトロジックを適用するのではなく、正確なピクセル位置にすべてのものを配置するため、手動のプログラムによる調整を行う必要があります。

+0

私はすべてのUISwitchesをxibに固定された上と左に設定しましたが、iOS 4では左に伸びてラベルの上を覆います。私は間違って何をしていますか? – jowie

+0

もしそれらが左に固定されていれば、(NIBの情報に基づく)iOS 5サイズの適切なフレームをNIBにロードして、それをUISwitchに設定し、 iOS 4のスイッチがそのフレームで何らかのバリデーションを行い、その結果、幅を調整することになりますが、原点をどうするか正確にはわかりません。 – Tommy

1

IOS 5を使用すると、iOSのバージョン

 BOOL isIOS5 = [[[UIDevice currentDevice] systemVersion] intValue] >= 5; 
+0

私が理解しているように、同じことをするためにxibにいくつかのことをする方法はありませんか? – earsonheart

+0

いいえ、あなたはクラスでそれを行うべきです – holographix

+0

スイッチのアウトレットに接続されているオブジェクトのサイズを照会し、それに応じて調整するのは賢明かもしれませんが、4と5のサイズを(暗黙的に) 'systemVersion'チェックをまったく実行しないでください。 'someSwitch.frame.size.width' – Tommy

関連する問題