gpt4 book ai didi

ios - 警报 View 事件指示器显示时间

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:13 26 4
gpt4 key购买 nike

我使用警报 View 显示事件指示器:

 UIAlertView *Alert= [[UIAlertView alloc] initWithTitle:@"Loading"
message:@"\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];

UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(139.5, 75.5);
[Alert addSubview:spinner];
[spinner startAnimating];
[Alert show];

[Alert dismissWithClickedButtonIndex:0 animated:YES];

唯一的问题是它会很快从屏幕上消失,我想指定警报在屏幕上停留的时间,比如两秒,而不是现在显示的纳秒。我不确定如何着手/实现这个,我会使用某种 NSTimer,如果有一些建议如何实现,我将不胜感激。谢谢。

最佳答案

这是一个示例,说明我将如何使用 NSTimerNSInvocation 解决问题。我还没有测试过,所以可能会遇到一些问题。

UIAlertView *Alert= [[UIAlertView alloc] initWithTitle:@"Loading"
message:@"\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(139.5, 75.5);
[Alert addSubview:spinner];
[spinner startAnimating];
[Alert show];
NSMethodSignature *mySignature = [UIAlertView instanceMethodSignatureForSelector:@selector(dismissWithClickedButtonIndex:animated:)];
NSInvocation *myInvocation = [NSInvocation invocationWithMethodSignature:mySignature];
[myInvocation setSelector:@selector(dismissWithClickedButtonIndex:animated:)];
[myInvocation setTarget:Alert];
int buttonIndex = 0;
bool isAnimated = YES;
[myInvocation setArgument:&buttonClicked
atIndex:2];
[myInvocation setArgument:&isAnimated
atIndex:3];
NSTimer *t = [NSTimer scheduledTimerWithTimeInterval:2
invocation:myInvocation
repeats:NO];

不过,我仍然认为这不是问题的最佳答案。在大多数情况下,您应该在要完成的工作完成之前使用该指标,而不是基于时间,尤其不是可以更改或取决于其他因素的时间。

所以正确的答案是等到工作完成,然后关闭 UIAlertView

关于ios - 警报 View 事件指示器显示时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11457860/

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