Кнопки, созданные программно, не получают корректировку внутри событий... UICollectionViewCell
Я создаю Collection View Cells программно, используя Facade Framework для правильного позиционирования. К сожалению, кнопки внутри ячеек не реагируют на прикосновения. Представление коллекции создается с использованием раскадровки. Загрузка внешнего вида CollectionViewCell:
_likesButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_likesButton setBackgroundColor:[UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:0.10]];
_likesButton.contentEdgeInsets = UIEdgeInsetsMake(5, 8, 5, 8);
_likesButton.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
_likesButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
[_likesButton setAttributedTitle:[self attributedSpacedStringFromString:@"+10039" withColor:[UIColor flatWhiteColor] withFont:[UIFont fontWithName:@"OpenSans-Bold" size:12]] forState:UIControlStateNormal];
_likesButton.layer.cornerRadius = 12;
[_likesButton sizeToFit];
_likesButton.userInteractionEnabled = YES;
В представлении коллекции:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
cell.likesButton.tag = indexPath.row;
[[cell likesButton] addTarget:self action:@selector(showAlert:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
Что я делаю не так? С наилучшими пожеланиями,
Адриан.
1 ответ
Хорошо, я только что понял... У меня было изображение в качестве фона (UIButton был подпредставлением), а в UIImageView отключен userInteractionEnabled по умолчанию. Установка этого свойства в ДА, исправлена ошибка.