Я просмотрел массу сообщений по подобным вещам, но ни один из них не соответствует или не устраняет эту проблему. Начиная с iOS 7, всякий раз, когда я добавляю UIButton
в UITableViewCell
или даже в footerview, он работает "отлично", что означает, что он получает целевое действие, но он не показывает малое выделение, которое обычно происходит, когда вы нажимаете UIButton
. Это заставляет пользовательский интерфейс выглядеть фанки, не показывая, как кнопка реагирует на касание.
Я уверен, что это считается ошибкой в 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;
}
//Удаление жестов из ячейки
for (UIGestureRecognizer *recognizer in self.contentView.gestureRecognizers) {
recognizer.enabled = NO;
}
//Это показывает малое касание, но это не желаемый внешний вид.
button.showsTouchWhenHighlighted = YES;