Мы используем UIPickerView
, чтобы пользователь мог выбирать из списка параметров. Мы добавляем UIPickerView
в качестве подсмотра контейнера UIView. Затем мы добавляем UITapGestureRecognizer в контейнер UIView
. UITapGestureRecognizer
используется для отклонения выбора, удаляя его супер-просмотр.
В iOS 7.0 и предыдущих версиях это работало, как ожидалось. Однако в iOS 7.1 эта настройка больше не работает в том смысле, что UITapGestureRecognizer
не распознает нажатие и вызывает селектор, указанный в действии (отклонение представления выбора и вид контейнера). код ниже
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.nameList=[[NSMutableArray alloc] initWithObjects:@"A",@"B",@"C", nil];
UIPickerView *myPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 200, 320, 200)];
myPickerView.delegate = self;
myPickerView.showsSelectionIndicator = YES;
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapInListPickerView:)];
[singleTap setNumberOfTapsRequired:1];
[singleTap setNumberOfTouchesRequired:1];
[myPickerView addGestureRecognizer:singleTap];
[self.view addSubview:myPickerView];
}
-(void)tapInListPickerView:(UIGestureRecognizer *)sender
{
NSLog(@"Taped in pikcer view");
}
Если какая-либо другая информация необходима или если есть более предпочтительный метод для этого, сообщите мне.