UIButton of UIButtonTypeCustom с заголовком не отображается при нажатии - PullRequest
1 голос
/ 05 марта 2012

Я настраиваю следующий UIButton (в ячейке табличного представления), чтобы он выглядел как URL-ссылка, по которой можно кликать

UIButton *buttonUserName = [UIButton buttonWithType:UIButtonTypeCustom];
buttonUserName.frame = CGRectMake(10, 10, 280, 20);
[buttonUserName setTitle:@"test" forState:UIControlStateNormal];
[buttonUserName setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[buttonUserName setEnabled:YES];
buttonUserName.userInteractionEnabled = YES;
[buttonUserName addTarget:self action:@selector(user:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:buttonUserName];

Кнопка и заголовок отображаются, но при нажатии на них эффект щелчка не отображается (визуально). Я что-то упустил?

Ответы [ 4 ]

7 голосов
/ 05 марта 2012

Установите визуальную обратную связь, которую вы хотите, в состояние кнопки UIControlStateHighlighted

например: цвет заголовка

[buttonUserName setTitleColor:[UIColor redColor] forState: UIControlStateHighlighted];

и некоторые другие заголовок, фоновое изображение, изображение и т. Д.

1 голос
/ 05 марта 2012

добавить это:

 [cell.contentView bringSubviewToFront:buttonUserName];

Полагаю, вы перекрываете любой другой вид кнопки

0 голосов
/ 05 марта 2012

Ваш вопрос состоит из двух частей:

  1. У него нет эффекта щелчка: это потому, что вы использовали UIButtonTypeCustom.Если вы хотите использовать пользовательскую кнопку, вы должны дать изображение для этой кнопки.Или же вы должны использовать UIButtonTypeRoundedRect, и вы получите этот эффект щелчка.
  2. Как указывал Срикар, поместите некоторое предупреждение в метод user:, и вы увидите, что этот код выполняется.

Надеюсь, это поможет!

0 голосов
/ 05 марта 2012

Попробуйте добавить туда UIAlert или NSLog, чтобы увидеть, получаете ли вы событие касания. так как после того, как пользователь нажимает на вашу кнопку, событие переходит на (IBAction)user:(id)sender

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...