2015-11-05 1 views
0

У меня много SubViews в моем UIView, и у многих из них есть UIButtons. В одном из подзаголовков - _bottomView (Координаты - (0,519,320,49)) - есть ошибки. Он не распознает события щелчка на кнопках, расположенных внутри него.SubView не считается частью MainView

Я попытался разместить UIButton, покрывающий весь _bottomView, и событие click от этой кнопки (testButton) также не распознается.

Я попытался добавить tapRecogniser к коду и крану из каждой точки, ЗА ИСКЛЮЧЕНИЕМ точек в _bottomView распознаются. TapRecogniser Код ниже

UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; 
    [self.view addGestureRecognizer:gr]; 
    _bottomView.userInteractionEnabled=true; 


-(void)handleGesture:(UIGestureRecognizer *)gestureRecognizer { 
    CGPoint p = [gestureRecognizer locationInView:self.view]; 
     NSLog(@"got a tap in the region i care about"); 
} 

Я попытался [self.view addSubview:_bottomView]; и это не помогло. В чем может быть проблема?

ViewController

Screen

+0

Вы хотите, чтобы кнопка управляла краном или UITapGestureRecognizer? – Yan

+0

Я хочу, чтобы кнопка управляла краном. Но я подумал, что вид, внутри которого существует кнопка, должен по крайней мере обрабатывать tapGesturerecognizer, не так ли? –

+0

Возможно, вы ищете это (http://stackoverflow.com/questions/3344341/uibutton-inside-a-view-that-has-a-uitapgesturerecognizer). Прочтите этот документ (https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/event_delivery_responder_chain/event_delivery_responder_chain.html#//apple_ref/doc/uid/TP40009541-CH4-SW3) для уточнения , –

ответ

0

Если ваше мнение не получавшие прикосновений

  1. Убедитесь, что ваш UIView имеет userInteractionEnabled набор для YES
  2. Убедитесь, что вид находится в пределах его супервизор, а супервизор находится в пределах окна. Вы можете печатать фреймы просмотров, используя NSLog(@"%@",NSStringFromCGRect(view.frame));
+0

Если вы прочитали код и посмотрели экраны, которые я опубликовал, вы увидите, что у них есть оба из них: –

+0

, каковы рамки 'bottomView', его супервизор, а также' [UIScreen mainScreen] .bounds'? – Saif

+0

superiew - {{0, 0}, {320, 568}} bottomView - {{0, 519}, {320, 49}} –

0

Ничего не помогло. Мне пришлось удалить весь контроллер просмотра и переделать все это. Это, очевидно, решило проблему.