如何使用uiactionsheet解雇,当你轻敲外面,例如上面?

如何在使用uiactionsheet时忽略外部例如上方的内容?这是iPhone的。显然,ipad默认是这样做的(我可能是错的)。如何使用uiactionsheet解雇,当你轻敲外面,例如上面?

回答:

好的有一个解决方案。以下适用于的UIActionSheet

// For detecting taps outside of the alert view 

-(void)tapOut:(UIGestureRecognizer *)gestureRecognizer {

CGPoint p = [gestureRecognizer locationInView:self];

if (p.y < 0) { // They tapped outside

[self dismissWithClickedButtonIndex:0 animated:YES];

}

}

-(void) showFromTabBar:(UITabBar *)view {

[super showFromTabBar:view];

// Capture taps outside the bounds of this alert view

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapOut:)];

tap.cancelsTouchesInView = NO; // So that legit taps on the table bubble up to the tableview

[self.superview addGestureRecognizer:tap];

[tap release];

}

它的要点是添加一个手势识别器的动作片的上海华,并测试所有水龙头,看看他们是动作片上的子类。

回答:

它可能对你有用 用途:

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated 

previous so question

回答:

我认为你正在寻找这种方法

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated 

编辑

可以使用这个在你的动作表对象上,它工作得很好,但你不能在该表之外注册事件,如灰色部分

可能是你的视图控制器上使用的UITapGestureRecognizer比它可能的伎俩。

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(nothing)]; 

[actionSheet addGestureRecognizer:recognizer];

回答:

,因为动作片覆盖整个视图片的形式按钮一些透明的黑色鉴于iPhone手机,但在ipad这种行为在默认情况下呈现你不能这样做,通过点击之外。

因此用于触摸外部你不能调用触摸方法。所以我不这么认为,你可以这样做,并且当苹果在操作表中提供一个取消按钮时,为什么不使用该按钮而不是这个。

回答:

这不回答这个问题准确,但这里是我做的项目之一(从增加额外这样可以防止“完成”按钮或“外部点击”的东西),当点击关闭选择器:

落实在其中创建一个UILabel的viewForRow选择器的委托方法并返回它:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 

在这些自定义行标签,添加自来水动作处理程序:

UITapGestureRecognizer *tapAction = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClick:)]; 

[label addGestureRecognizer:tapAction];

在​​回调,关闭该开放片(包含该选择器视图的一个):

[pickerSheet dismissWithClickedButtonIndex:0 animated:TRUE]; 

回答:

使用showFromRect,例如:

UIView *barButtonView = [barButtonItem valueForKey:@"view"]; 

CGRect buttonRect = barButtonView.frame;

[actionSheet showFromRect:buttonRect inView:self.view animated:YES];

回答:

在iOS7

我在gestureRecognizerShouldBegin添加dismissWithClickedButtonIndex味精,它的工作原理。

回答:

将UIActionSheet的cancelButtonIndex属性设置为有效值后,轻敲外部将关闭UIActionSheet。我已经在iOS 9中尝试过了。但是,如果此cancelButtonIndex未设置为错误值(例如,一个超过UIActionSheet中按钮总数的指数),在外部点击时不会发生任何事情。

回答:

不需要任何点击手势。只需使用UIAlertActionStyleCancel操作即可。

回答:

使用。取消 UIAlertActionStyle作为选项。

以上是 如何使用uiactionsheet解雇,当你轻敲外面,例如上面? 的全部内容, 来源链接: utcz.com/qa/266844.html

回到顶部