В заголовке более или менее говорится все это. В ответ на a touchesBegan
событие, мой UIViewController
повторно окрашивает себя и добавляет некоторые подпредставления.
Это никогда не получает touchesEnded
. Я предполагаю, потому что добавленные подпредставления так или иначе прерывают событие. Я пытался звонить resignFirstResponder
на подпредставлениях напрасно.
Код хорошо работает, когда я не добавляю дочерние представления, и сенсорные события называют как нормальные.
Какие-либо идеи?
Спасибо
Править: Бит детали и как я зафиксировал его.
В основном у меня было основное представление с некоторыми подпредставлениями, когда я коснулся подпредставления, событие будет передано до основного представления, однако, на этом событии я удалял подпредставления и добавлял новые в их месте. То, что касание, порожденное на подпредставлении, которое больше не существовало предназначенное, что остальная часть касания была потеряна.
Я зафиксировал это путем переопределения hitTest:withEvent в моем основном представлении, для остановки касаний, когда-либо протестированных против подпредставлений
Вы пытались установить для свойства userInteractionEnabled
значение NO для подпредставления, прежде чем добавлять его в качестве подпредставления?
Вам нужно будет передать касание из подпредставления в суперпредставление, используя что-то вроде этого:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
}