Я установил UIButton внутри пользовательского UIView, и кнопка не получает никаких событий касания (она не попадает в выделенное состояние, поэтому моя проблема не о невозможности подключения вверх прикосновение внутри обработчика). Я попробовал как поместить его в XIB в Interface Builder, так и попробовал программно добавить UIButton в UIView отдельно, оба закончились без везения. Все мои представления находятся внутри UIScrollView, поэтому я сначала, хотя UIScrollView может блокировать их, поэтому я также добавил кнопку программно точно так же, как я добавляю свое пользовательское представление в UIScrollView, и кнопка работала, исключая возможность UIScrollView быть причиной. Мой вид hiearchy выглядит следующим образом:
Кнопка находится над изображением, а передний слой полностью не занимает мою кнопку, поэтому нет причин для физического взаимодействия с кнопкой. На моей стороне пользовательского вида просмотра я создаю свое представление как таковое:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
UIView *sub = [[[NSBundle mainBundle] loadNibNamed:@"ProfileView" owner:self options:nil] objectAtIndex:0];
[self addSubview:sub];
[sub setUserInteractionEnabled:YES];
[self setUserInteractionEnabled:YES];
CALayer *layer = sub.layer;
layer.masksToBounds = YES;
layer.borderWidth = 5.0;
layer.borderColor = [UIColor whiteColor].CGColor;
layer.cornerRadius = 30.0;
/*layer.shadowOffset = CGSizeZero;
layer.shadowRadius = 20.0;
layer.shadowColor = [[UIColor blackColor] CGColor];
layer.shadowOpacity = 0.8;
*/
}
return self;
}
Я пробовал все комбинации setUserInteractionsEnabled
, и мне не повезло. (Да, также установите их для проверки в Interface Builder тоже). Я также прочитал в другом вопросе с аналогичной проблемой, что я должен попробовать переопределить "canBecomeFirstResponder", чтобы вернуть "ДА", и я тоже это сделал. Но проблема остается, я не могу нажать кнопку. Я не дал никаких специальных свойств, настроек кнопки, это просто обычный. Мои другие объекты в представлении (надписи ниже, просмотр изображения за кнопкой и т.д.) Работают без проблем. Что может быть возможно здесь неправильно?
Спасибо,
Can.
ОБНОВЛЕНИЕ: Вот быстрое воспроизведение проблемы: https://dl.dropbox.com/u/79632924/Test.zip Попробуйте запустить и нажмите кнопку.