UIScrollViewビュー内にあるUIView内の2つのUIButtonがiOS 5ではクリックできないが、iOS 6では完全に正常に動作するという奇妙なバグがあります(スクリーンショットはスクローラーと下のマップを示しています)
他の唯一の詳細は、ステーションが選択されたときにボタンを表示するために「上にスライド」するスクローラー ビューです。iOS 5 でボタンを選択しようとしましたが、(視覚的に) ボタンはヒットしますが、イベントは発生しません。
編集:シミュレーターのボタンをタップアンドホールドし、カーソルを画面の上に移動して放すと (たとえば、常に表示されていた UIView の部分に)、イベントが発生します。
スクロール ビュー自体には次の設定があります。後者の 2 つは、iOS 5 でボタンを機能させるためだけに追加されたものです (さまざまな組み合わせを試しました)。
self.scrollView.clipsToBounds = YES;
self.scrollView.scrollEnabled = YES;
self.scrollView.pagingEnabled = YES;
self.scrollView.delaysContentTouches = NO;
self.scrollView.canCancelContentTouches = NO;
ボタンイベントはすべて、適切なターゲットなどで正しく配線されています。
[_updatePriceButton addTarget:self action:@selector(showPriceUpdateBoxWithPrice:) forControlEvents:UIControlEventTouchUpInside];
[_stationDetailsButton addTarget:self action:@selector(stationDetailsSelected:) forControlEvents:UIControlEventTouchUpInside];
およびハンドラー (サンプルとして 1 つを次に示します):
- (void)stationDetailsSelected:(id)sender {
if ([self.delegate respondsToSelector:@selector(stationDetailsSelected:)]) {
[self.delegate stationDetailsSelected:_station];
}
}
どんな助けでも素晴らしいでしょう!