Мне нужно обнаружить прикосновение к определенному виду

У меня есть это grayView это отключает контроллер и делает его неактивным вежливым к предыдущему вопросу, который я задал, но мне нужно определить, grayView тронут, и если он коснулся, избавиться от grayView, Если кто-нибудь может помочь мне найти решение, я был бы очень признателен. Я пытался с помощью UITouchedBegan и многие другие решения для работы со стеком, но каждое из них не сработало. Любая помощь будет оценена.

grayView является UIView,

-(void)ViewDidLoad
{
    grayView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    grayView.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5];
    [self.navigationController.view addSubview:grayView];
}

1 ответ

Решение

Вы можете добавить UITapGestureRecognizer к grayViewи при касании удалите grayView от superview,

Вот как бы я это сделал.

//your gray view
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self   action:@selector(removeGrayView:)];
tap.numberOfTapsRequired = 1;
[_yourGrayView addGestureRecognizer:tap];

Убедитесь, что вы добавили этот код, прежде чем добавить свой grayView на ваш superView

Затем,

-(void) removeGrayView: (UITapGestureRecognizer) gesture {
     [_yourGrayView removeFromSuperView];
}
Другие вопросы по тегам