繁体   English   中英

如何解雇ios中的UIPickerView

[英]how to dismiss a UIPickerView in ios

在我的应用程序中,我在添加联系人页面中有选择视图。 我给出了以下'touchesBegan'方法。 但即使我点击要设置的值,它也会取消选择器。 例如,如果我从首选电话选择器点击“家庭电话”,则选择器将被解除而不是设置该值。 只有当我在选择器外面点击时,我才需要解雇选择器。 任何人都可以帮我解决这个问题。

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
 [self.AddView endEditing:YES];
}

您可以使用

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  UITouch *touch = [touches anyObject];
  if ([touch view] != pickerview)
     [self.AddView endEditing:YES];
}

当触摸位于选择器视图之外时,这将用于结束

在你的代码中:

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

 [self dismissViewControllerAnimated:YES completion:nil];

}

或者您可以在PickerView下放置一个更大的按钮,使其颜色清晰自定义和全屏尺寸,然后使用(IBAction)内部的消除,当您在选择器外部点击时,您的视图将被解除

- (IBAction)buttonClear:(id)sender {

[self dismissViewControllerAnimated:YES completion:nil];

}

试试这段代码:

UITapGestureRecognizer *single_tap_recognizer;

    single_tap_recognizer = [[[UITapGestureRecognizer alloc]
                              initWithTarget : self.view
                              action         : @selector(upper_button_view_tapped)]
                             autorelease];

    [single_tap_recognizer setNumberOfTouchesRequired : 1];
    [self.view addGestureRecognizer : single_tap_recognizer];

-(void)upper_button_view_tapped
{
 [self .view endEditing:YES];
}

希望它对你有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM