gpt4 book ai didi

ios - 在外部点击时移除 View

转载 作者:可可西里 更新时间:2023-11-01 03:40:58 25 4
gpt4 key购买 nike

我有一个 UIView,它在点击按钮时出现,我基本上将其用作自定义警报 View 。现在,当用户在我添加到主视图的自定义 UIView 之外点击时,我想隐藏自定义 View ,我可以使用 customView.hidden = YES; 轻松地做到这一点,但是我如何检查 View 外的水龙头?

感谢帮助

最佳答案

有两种方法

第一种方法

您可以为自定义 View 设置标签:

customview.tag=99;

然后在您的 View Controller 中,使用 touchesBegan:withEvent: 委托(delegate)

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];

if(touch.view.tag!=99){
customview.hidden=YES;
}
}

第二种方法

更有可能的是,每次您想弹出自定义 View 时,它后面都有一个覆盖层,它将填满您的屏幕(例如,alpha ~0.4 的黑色 View )。在这些情况下,您可以向其添加一个 UITapGestureRecognizer,并在每次您希望显示自定义 View 时将其添加到您的 View 中。这是一个例子:

UIView *overlay;

-(void)addOverlay{
overlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, self.view.frame.size.height)];
[overlay setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]];

UITapGestureRecognizer *overlayTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(onOverlayTapped)];

[overlay addGestureRecognizer:overlayTap];
[self.view addSubview:overlay];
}

- (void)onOverlayTapped
{
NSLog(@"Overlay tapped");
//Animate the hide effect, you can also simply use customview.hidden=YES;
[UIView animateWithDuration:0.2f animations:^{
overlay.alpha=0;
customview.alpha=0;
}completion:^(BOOL finished) {
[overlay removeFromSuperview];
}];
}

关于ios - 在外部点击时移除 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32150872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com