2012-09-19 16 views
19

シミュレータを使用して私のアプリケーションをiPhone 5用に準備しています。 iPhone 4(Retina 4インチ)シミュレータで動作しないが、iPhone(Retina 3.5インチ)シミュレータでうまく動作する、私のビューのボタンのカップルが奇妙な問題を発見した。ボタンはタップされても何もしません。他の誰かがこの問題を経験しましたか?マイボタンはiPhone(Retina 4インチ)シミュレータのタッチイベントを検出しませんが、iPhone(Retina 3.5インチ)シミュレータで動作します

私はこれでどこから始めるのが難しいのですか。どこから始めるべきですか?

すべてのあなたの知恵のためにあまり前もってありがとう!

+2

ちょっと推測しましたが、透明なビューがボタンと重なっていないことを確認しましたか?おそらく、スプリングやストラットはiPhone 5の画面解像度で期待したことをしなかったでしょう。 – Sascha

+1

私は同じ問題に直面しています。私の場合、底部領域(おそらく余分な.5インチ)は反応しません。そこに配置されたタブバーのボタンはうまくいかず、スクロールをスクロールしようとするとその領域からUITableViewも機能しません。ボタンも下の領域に配置されていますか? – pennersr

+2

@pennersr:これを試しましたか?それは私には何の助けにもならなかったが、うまくいけばそれはあなたを助けるだろう。 http://stackoverflow.com/questions/12414817/iphone-5-4-bottom-toolbar-not-responding – BeachRunnerFred

答えて

4

この問題は、バネとストラットが設定されているためにボタンが重なっているために発生しました。ボタンのzオーダーを調整することで問題が解決されました。皆さんありがとう!

8

私にとっては、解決策は、MainWindow.xibのサイズ( "Simulated Metrics")を "Retina 4 Full Screen"に設定することでした。他の画面のサイズを変更する必要はありませんでした(まだNoneに設定されています)。 MainWindow.xibを変更すると、下部の領域が再びクリック可能になります。

+0

これに注意してください。これは実際には、シミュレータの全画面でタッチイベントのみを有効にするため、問題をマスクします。実際のデバイスでは、MainWindow.xibの[起動時にフルスクリーン]オプションを有効にしない限り、タッチイベントはまだ機能しません。より完全な説明については私の答えを見てください。 –

+0

これは、ビューサイズのみを変更するため、正しく動作しません。物が3.5インチの画面で正しくサイズ変更されないことがあります。最善の選択肢は、メインウィンドウの「起動時に全画面表示」を有効にすることです。 – kamprath

32

MainWindow.xibを編集し、「フルスクリーン起動時」を有効にする必要があります。より詳細な説明については、Appleのドキュメントを参照してください。

重要:Interface Builderで自分のウィンドウを作成するとき、それは はあなたが 属性インスペクタで起動オプションでフルスクリーンを有効にすることをお勧めです。このオプションが有効になっておらず、ウィンドウが である場合、タッチイベントは一部のビューで受信されない になります。これは、ウィンドウ(すべて ビューのような)は、その境界矩形の外でタッチイベントを受け取らないからです。 ビューは既定でウィンドウの境界にクリップされないため、 ビューは引き続き表示されますが、イベントは表示されません。起動時にフルスクリーン を有効にすると、ウィンドウが現在の画面に適切にサイズが になります。

Complete document from Apple

+1

これは私のために修正されました。 – jbierling

+0

ありがとう、私の問題を修正! – Stiefel

+1

私のアプリのタブバーは4 "のイベントに触れませんでした。これは修正されました...ありがとう。 – Ben

1

私は私のPROBを解決しました。

3.5インチと4インチのスクリーンのための.originは異なるので、両方のための共通コードを書くときには、私たちが与えることに注意する必要がありますCGRectmake(x,y,w,h);

diffビューの背景色を変更して、重複しているかどうかを確認して4.0インチのイベントを取得することができます。

4

この問題には、2つの解決策があります。

あなたがメインウィンドウには次の手順に従って使用している場合:

MainWindow.xibを選択します。

b。アトリビュートインスペクタでWindowsオプションFull Screen at Launchを選択します。

アプリケーションがメインウィンドウが含まれていない場合は、単に追加:のviewDidLoadで

self.view.frame = [UIScreen mainScreen].bounds 

を。

関連する問題