Одно из возможных решений заключается в том, что при нажатии на конкретную ячейку и обработке средства выбора (для представления средства выбора) можно вставить представление, называемое MASK View, над представлением таблицы.(с фреймом как self.tableview.frame - yourPicker.frame.size.height).Теперь, когда вы получаете любой щелчок по этому представлению, вы можете обрабатывать его следующим образом:
-(void)showMaskView{
if (!viewMaskView) {
CGRect viewRect = CGRectMake(0, 0, self.tableView.frame.size.width, self.tableView.frame.size.height - yourPicker.frame.size.height);
viewMaskView = [[MaskView alloc] initWithFrame:viewRect];
viewMaskView.delegate = self;
}
[self.view addSubview:viewMaskView];
[self.view bringSubviewToFront:viewMaskView];
}
-(void)removeMaskView{
if (viewMaskView) {
[viewMaskView removeFromSuperview];
}
//Remove the Picker
}
В классе MaskView вы можете обрабатывать прикосновения следующим образом
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
if(self.delegate && [self.delegate respondsToSelector:@selector(removeMaskView)])
[self.delegate removeMaskView];
}
.маска вид на пикер в изображении.При нажатии он удаляет сборщик.