gpt4 book ai didi

iphone - UIActivityIndi​​catorView 无响应

转载 作者:行者123 更新时间:2023-12-03 21:04:01 24 4
gpt4 key购买 nike

当触发 UIButton 时,将启动 UIActivityIndi​​cator,然后在 implementLogin 完成时停止:

-(IBAction)loginButton {
NSLog(@"loginButton triggered");

// Checks the Fields are not empty
if ([sessionIdField.text length] != 0 && [usernameField.text length] != 0 ) {
NSLog(@"Beginning Spinner");
// Displays spinner
[activitySpinner startAnimating];

[self implementLogin];

// Displays spinner
[activitySpinner stopAnimating];
}
}

但是在运行时,微调器没有出现!我已将微调器设置为“停止时隐藏”。

当我将事件指示器设置为在 View 加载之前进行动画处理时,它会按应有的方式显示,因此我猜测 UIButton 有问题...(另外,我使用“Touch Up Inside”按钮。)

这是一个简单的问题...有人可以帮忙吗?

谢谢

最佳答案

无论 implementLogin 正在做什么(也许是发出网络请求?),它都是在主线程上执行的,这可能会阻止 UI 更新,例如旋转动画。

你可以重新编码如下:

[activitySpinner startAnimating];
dispatch_async(dispatch_get_global_queue(DISPATCH_PRIORITY_DEFAULT, 0), ^{
[self implementLogin];
dispatch_async(dispatch_get_main_queue(), ^{
// Stops spinner
[activitySpinner stopAnimating];
}
}

[代码未经测试,但您明白了。]

这里发生的事情是,您将登录任务分派(dispatch)到后台,并且该 block 要做的最后一件事是停止主线程上的微调器(作为单独的任务)。

关于iphone - UIActivityIndi​​catorView 无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384461/

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