3

私の iOS 7 アプリには、UIMapView を持つ UIViewController があります。また、ユーザーが現在の検索エリアの外にマップをドラッグすると、マップ上に表示される UIButton のある小さなビューもあります。表示されたら、ユーザーはボタンをタップして、現在の地図の中心周辺でさらに POI を検索できます。

iAd Suite サンプル コードから Apple の BannerViewController を使用しているので、1 つの広告バナーを複数のビューに表示できます。これには、BannerViewController が広告を表示/非表示にできるように、ビュー コントローラーをコンテナーに埋め込む必要がありました。これで、ボタンが表示された小さなビューが表示されたときに、ボタンに触れても、以前のように Touch Up Inside イベントがトリガーされなくなりました。

Interface Builder を使用しており、ビュー階層内のすべてのビューを確認しましたが、すべてのビューでユーザー インタラクションが有効になっています。IB でのビュー階層は次のようになります。

BannerViewController MapViewController

これはおそらく私が考えていないばかげたものであることはわかっていますが、あまりにも長い間見てきており、助けが必要です.

前もって感謝します。

更新#1

小さなビューからUIButtonを削除し、タップジェスチャ認識エンジンに置き換えましたが、まだ何もありません。ビュー自体がタッチ イベントを取得していないようです。

更新#2

BringSubviewToFront を使用してボタンを前面に移動しても役に立ちません。

更新 #3 :

コンテナ ビュー コントローラのサブビューのリストを次に示します。

<__NSArrayM 0x17c74ea0>(
<MKMapView: 0x15ddfe40; frame = (0 0; 320 367); clipsToBounds = YES; autoresize = TM+BM; layer = <CALayer: 0x15de1e90>>,
<UIView: 0x17c00030; frame = (0 317; 320 50); alpha = 0; autoresize = TM+BM; layer = <CALayer: 0x15d42dc0>>,
<_UILayoutGuide: 0x17c000f0; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x17c75400>>,
<_UILayoutGuide: 0x17c00160; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x17c751d0>>
)
4

2 に答える 2

0

私は正しかった、それは愚かだった。みんなのコメントの後、コンテナをチェックしたところ、自動レイアウト制約は設定されていませんでした。私の経験から、これは、フレームがすべてゼロで作成されることを意味します。これらの制約を追加すると、すべてが再び正常に機能し始めました。

これを追跡するのを手伝ってくれたすべての人に感謝します。

于 2014-04-10T18:40:09.160 に答える
0

iOS シミュレーターを試している場合は、iOS シミュレーターを終了し、すべてのコードが正しい場合はアプリを再度実行してください。

于 2015-12-10T13:13:51.510 に答える