gpt4 book ai didi

iphone - 模拟单击按钮

转载 作者:行者123 更新时间:2023-11-29 03:33:03 25 4
gpt4 key购买 nike

如标题所示,想点击屏幕,屏幕会有点暗半透明,当手指离开屏幕时,屏幕恢复正常,这与UIButton类似。

在这种情况下,我知道UIButton要容易得多,但这里只是一个示例

我的代码如下:

- (IBAction)tapped:(UITapGestureRecognizer *)sender
{
UIView * tintView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:tintView];

switch (sender.state) {
case UIGestureRecognizerStateRecognized: {
[tintView setBackgroundColor:[UIColor colorWithRed:.25 green:.25 blue:.25 alpha:.5]];
NSLog(@"begin");
}
default: {
[tintView setBackgroundColor:[UIColor clearColor]];
NSLog(@"ended");
}
}
}

但是,当点击屏幕时,尽管 beginending 在控制台中被捕获,但它不会像上面的代码那样改变。

如果在 casedefault 之间互换这些代码,例如

    switch (sender.state) {
case UIGestureRecognizerStateRecognized: {
[tintView setBackgroundColor:[UIColor clearColor]];
NSLog(@"begin");
}
default: {
[tintView setBackgroundColor:[UIColor colorWithRed:.25 green:.25 blue:.25 alpha:.5]];
NSLog(@"ended");
}
}

beginend 可以在控制台中显示,但点击时屏幕会越来越暗,永远不会恢复到正常、清晰的颜色。

我的代码有什么问题吗?如何实现?

谢谢!

最佳答案

[self PerformSelector: withObject: afterDelay:] 是完成此类操作的常用方法。

您可以设置单独消除变暗 View 的方法,然后将其引用为选择器

[self performSelector:@selector(methodWhichDismissesDarkView:) withObject:nil afterDelay:0.2]

使 View 变暗后立即调用此函数,0.2 秒后它将触发。

要真正做到这一点,请确保您可以使用以下方法优雅地处理延迟期间发生的中断:

[NSObject cancelPreviousPerformRequestsWithTarget:self];

当应用程序不再需要处理待处理的操作时,这将取消它。

关于iphone - 模拟单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19519975/

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