私は同様のことに関するたくさんの投稿を見てきましたが、この問題に完全に一致したり修正したりするものはありません. iOS 7 以降、UIButton
aUITableViewCell
またはフッタービューに a を追加するたびに「正常に」動作します。つまり、ターゲット アクションを受け取りますが、 a をタップしたときに通常発生する小さなハイライトは表示されませんUIButton
。タッチに反応するボタンを表示しないと、UI がファンキーに見えます。
これはiOS7のバグとして数えられると確信していますが、誰かが解決策を見つけたか、解決策を見つけるのを手伝ってくれました:)
編集:ボタンを長押しすると強調表示されることを忘れていましたが、標準ビューに追加した場合のようにすばやくタップすることはできません.
コード:
ボタンの作成:
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.titleLabel.font = [UIFont systemFontOfSize:14];
button.titleLabel.textColor = [UIColor blueColor];
[button setTitle:@"Testing" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents: UIControlEventTouchDown];
button.frame = CGRectMake(0, 0, self.view.frame.size.width/2, 40);
私がテストしたこと:
//ジェスチャ レコグナイザUITableView
が邪魔になる場合に備えて、ジェスチャ レコグナイザを削除します。
for (UIGestureRecognizer *recognizer in self.tableView.gestureRecognizers) {
recognizer.enabled = NO;
}
//Cell からジェスチャを削除する
for (UIGestureRecognizer *recognizer in self.contentView.gestureRecognizers) {
recognizer.enabled = NO;
}
//これは少し軽いタッチを示していますが、これは望ましい外観ではありません
button.showsTouchWhenHighlighted = YES;