Исправить касание не работает на UILabel внутри UITableViewCell? - PullRequest
1 голос
/ 03 мая 2019
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{
    if (tableView == sessionListTable){
        selectedSessionId = [[self.sessionNames objectAtIndex:indexPath.row] objectForKey:@"session_id"];
        selectedSessionName = [[self.sessionNames objectAtIndex:indexPath.row] objectForKey:@"session_name"];
        NSLog(@"%@",selectedSessionId);
        [StudentCommon sharedInstance].mTeacherSessionId = selectedSessionId;
        [self remoteSessionButtonClick];
        currentIndexPath = indexPath;
        previousIndexPath = currentIndexPath;
        [sessionListTable reloadData];
        [sessionListPopUp removeFromSuperview];
    }

The UILabel` внутри табличного представления не реагирует на касание, хотя касание работает только в пустом пространстве ячейки.

Проверены все соединения, ограничения и классы.

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Сначала вы должны знать, что UILabel не отвечает на событие TouchUpInside.Кроме того, события, которые вызываются в UITableViewCell, не могут быть перехвачены в суперпредставлении (т. Е. UITableViewController или UIViewController, в котором размещена соответствующая таблица).

Чтобы достичь своей цели, вам нужно изменить UILabel наUIButton.А для того, чтобы превратить событие TouchUpInside в суперпредставление, у вас есть два варианта: 1- Создать делегат для своей ячейки и использовать его в своем суперпредставлении.2- Опубликуйте уведомление из своей камеры и наблюдайте (поймайте) его в супер виде.

Удачи.: -)

0 голосов
/ 03 мая 2019
  • Проверьте все свойства внутренних элементов пользовательского интерфейса в Инспектор атрибутов ,
  • убедитесь, что все они взаимодействуют с пользователем, отмечены галочкой ick
  • Проверьте свойства внутри Определяемые пользователем атрибуты времени выполнения и удалите которые не требуется.
  • Проверьте название класса, является ли он правильным «Суперклассом» / «Соответствующим пользовательским классом» или нет.
  • Проверьте внутри Инспектор соединений , есть ли у соединения какие-либо предупреждения ⚠️, если предупреждение существует, удалите соединение и подключитесь снова.

Это изображение, показывающее пользовательские атрибуты времени выполнения, которые вызывали эту ошибку

...