ios - UIActivityIndicatorView stopAnimating() 在 viewWillAppear 中第二次不起作用
问题描述
我想在发送请求之前显示 UIActivityIndicatorView 并在每次请求结束时隐藏。
所以我把请求代码放在viewWillAppear()
. 第一次,就OK了,UIActivityIndicatorView
请求前启动动画并显示,请求stopAnimation
后隐藏。
但是,第二次,即从另一个返回viewController
(无论是从 vc in tab 还是由 navigationController 推送),UIActivityIndicatorView
显示但不隐藏,代码执行与第一次相同,包括断点。
StopAnimation()
完全执行但 activityIndicatorView 不会停止或隐藏。
我尝试将请求代码放入viewDidAppear()
.
ActivityIndicatorView
每当从另一个人回来时就会停下来隐藏起来viewController
。
UIActivityIndicatorView 工作特别吗?
/* Has problem
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
request()
}
*/
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
request()
}
private func request() {
let session = URLSession(configuration: URLSessionConfiguration.default)
activityIndicatorView.startAnimating()
let task = session.dataTask(with: request) {
data, response, error in
DispatchQueue.main.async {
activityIndicatorView.stopAnimating()
}
}
// 9.20 edited
task.resume()
}
解决方案
推荐阅读
- python - 如何将随机项目从列表转换为字符串?
- c# - 如何在String C#中将单词或单词获取为char
- node.js - 你如何在 ramdaJS 中将数据操作到 Json
- sql - 如何将某个日期范围的 MS SQL 数据库数据复制到另一台计算机上的数据库中?
- .net-core - Update-Database 不会将迁移应用到数据库
- cassandra - 使用两个数据中心和 LOCAL_QUORUM 写入 Cassandra 时的同步延迟
- c++ - 回到八皇后。我想不通。(我错过了哪一部分?)
- robotframework - 如何从日历机器人框架中选择未来一天的日期
- python - 回归建模中的 int vs Float
- angular - vis.js 时间轴中不存在集群选项