我们使用a UIPickerView来允许用户从选项列表中进行选择.我们将添加UIPickerView为容器UIView的子视图.然后我们将UITapGestureRecognizer添加到容器中UIView.在UITapGestureRecognizer正在使用经不起它的超级视图关闭该选择器.
在iOS 7.0及以前的版本中,这是按预期工作的.但是,在iOS 7.1中,此设置不再起作用,UITapGestureRecognizer即无法识别tap并调用操作中指定的选择器(取消选择器视图和容器视图).代码如下
- (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");
}
Run Code Online (Sandbox Code Playgroud)
如果需要任何其他信息或者有更优选的方法,请告诉我.
我想在UIPickerView中选择多行,所以我有想法在表中显示我的数据并将该表作为子视图添加到选择器中.我试过这个,但没有成功.
有什么建议怎么做?
我正在尝试使用UIPicker视图,其行为与iPhone代码示例中通常看到的不同.
我想要做的是允许用户滚动选择器内容,但不自动选择选择器的行(使用选择器委托的"didSelectRow"方法).相反,我希望允许用户触摸选择器的中心行,该行会突出显示,并成为选择.
有没有办法实现这个目标?
提前致谢.
我有一个UIPickerView,在不使用时会逐渐消失到20%的alpha.我希望用户能够触摸选择器并将其淡入.
如果我在主视图上放置touchesBegan方法,我可以让它工作,但这仅在用户触摸View时才有效.我尝试了UIPickerView的子类化,并在那里有一个touchesBegan,但它没有用.
我猜它与Responder链有关,但似乎无法解决.
我想在用户开始更改 UIDatePicker 的值时触发一个操作。我的第一直觉是使用该datePickerEditingDidBegin方法,但似乎并不能完成任务。
iphone ×3
uipickerview ×3
objective-c ×2
cocoa-touch ×1
ios ×1
ios7.1 ×1
swift ×1
uidatepicker ×1
uipicker ×1
uitableview ×1
xcode ×1