2013-09-30 3 views
0

У меня есть кнопка удаления, которая появляется, когда я прокручиваю влево по строке таблицы.Скрыть кнопку удаления, когда вы нажимаете внешний вид.

Я хочу, чтобы у вас была возможность скрыть эту кнопку, если пользователь нажимает в другом месте в представлении. Как мне это сделать? Я попытался поставить гигантскую кнопку внизу всех видов, но кнопка снаружи не была обнаружена кнопкой.

В viewDidLoad, я добавил контроллер представления в качестве мишени:

[self.backgroundButton addTarget:self action:@selector(backgroundButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 

И в обратный вызов я просто сообщение:

- (IBAction)backgroundButtonTapped:(id)sender { 
    NSLog(@"BACKGROUND VIEW TOUCHED"); 
} 

Но когда я нажимаю на улице в общей зоне , Я не вижу сообщение.

+0

Любая возможность, что ваш UIButton лежит за некоторыми другими видами? Cud вы пытаетесь дать другой bgColor для вашего UITableView и всех других видов и проверить, не находится ли кнопка вне всех представлений. – HRM

+0

Спасибо HRM. Представление лежит за всеми подзонами, включая представление таблицы и коллекции. Я думал, что в этом дело? – serverman

+0

Добро пожаловать. Надеюсь, что проблема исправлена ​​... :) – HRM

ответ

0

Я решил вопрос следующим образом:

. Создал вид TopView подкласса из UIView . Изменен класс моего представления верхнего уровня для этого класса. . В рамках моей логики в нужном месте сохраните подсмотр, который необходимо скрыть в верхнем виде

self.view.mySubview = subview; 

. Overrode hitTest: withEvent в виде сверху. Здесь я обнаруживаю кран за пределами, что и подзаголовок, и скрывает подзапрос по мере необходимости.

+0

Если вы исправили свою проблему, я рекомендую вам выбрать свой собственный ответ в качестве принятого ответа. –

+1

hmm..it позволил мне принять его - так я и сделал - спасибо :) – serverman

Смежные вопросы