2016-12-21 8 views
0

最近私のプロジェクトを普遍的なアプリケーションに変換しました。 iPhoneとiPadバージョンのすべてが正しく配置されています(上下に黒いバーがありますが、これは問題ではありません)。 iPad 2では、HUDノードが125ポイントだけシフトアップされています。私はなぜこれがiPad 2で起こっているのか分かりませんが、iPad Air 2ではありません。他に誰かがこのような問題を抱えていましたか?ノードがiPad 2上で間違った位置にある

私は、コード内のデバイスの正確なモデルを確認することで問題を解決しようとしていますが、いくつかの問題が発生しています。私はUIDevice.current.model(と他の変種)を使ってみましたが、 "iPhone"か "iPad"のどちらかが返されます。私はこれを別の方法で行う方法を説明している他のポストを見つけましたが、それはまだ動作していません。誰かがデバイスの特定のモデルを見つける別の方法を持っているので、そのデバイスのノードを調整できますか?私はswift 3.0を使用していますが、構文がバージョンからバージョンへかなり変更されているようです。ここで

は、私は(今のところ運なしで)やろうとしていたものへのリンクです:iOS: How to determine the current iPhone/device model in Swift?

答えて

0

は、代わりにiPhone/iPadアプリの心配の、アスペクト比を心配。アスペクト比を取得するには、シーンの幅/高さを指定します。 iPad 2に問題があり、iPad 2に問題がない場合は、あなたのアプリが普遍的ではないと思います。シーンをどのように作成するかについて何らかの情報源を提供できれば、どこが間違っているかを教えてくれるでしょう。

+0

プロジェクト設定では、Universalと表示されます。私はシーンエディタ(.sksファイル)にレベルを作成し、Level1(fileNamed: "Level1") 'のようなレベルのインスタンスを作成し、viewDidLoadではシーンのサイズを' self.scene ?.size = CGSize(width:1334、height:750) 'とし、scaleModeを' self.scene?.scaleMode = .aspectFit'のように設定します。私はHUDの基底を、他のノードと同じように、1334,750のテクスチャ、クリアカラー、サイズのSKSpriteNodeとして作成し、anchorPointとpositionを設定してcameraNodeに追加します。 2つのデバイスのアスペクト比が同じではありませんか? – claassenApps

+0

Level1.sksファイルにシーンサイズを指定する必要があります。手動で作成する必要はありません。 – Knight0fDragon

+0

はい、そうではありませんが、何かが起こっていますが、おそらくretina gfx、iPad 2 '(@ 1x' gfx、iPad Air 2は' @ 2x' gfx – Knight0fDragon

関連する問題