- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于我是 iOS 新手,因此这里可能缺少设计或简单的细节,但无法弄清楚这一点:
我有一个func
叫getWeatherData()
,根据从另一个 View Controller 收到的位置,从 http
获取天气状况。请求并将其分配给 HikeModel。该函数在 ViewDidLoad()
的方法中被调用.
func
之后获取天气状况,它将其传递给 subview Controller 。其中子 VC 是 TableView Controller 。问题是我的TableViewCell
在父 View Controller 中,加载速度比 http 请求完成的速度要快。当单元格标签和图像尝试检索应该分配值的信息时,它们什么也不是,因为 http
请求未按时完成。
我还尝试使用 DispatchQueue.main.async
但没有显示出任何差异。
我正在做一个本地人 http
使用 Swift4 请求。
有关我的项目结构的更多详细信息,我正在根据这项工作进行:https://medium.com/@phillfarrugia/re-creating-the-siri-shortcuts-drawer-interaction-9b2bc94e0b05
在 ViewDidLoad
let group = DispatchGroup()
group.enter()
DispatchQueue.main.sync {
self.getWeatherData(hikeLocation: self.startHikeLocationString)
group.leave()
}
发送信息的方法fillDrawer
,其中应包含分配给 HikeModel 的天气变量。
private func configureDrawerViewController() {
let compressedHeight = ExpansionState.height(forState: .compressed, inContainer: view.bounds)
let compressedTopConstraint = view.bounds.height - compressedHeight
containerViewTopConstraint.constant = compressedTopConstraint
previousContainerViewTopConstraint = containerViewTopConstraint.constant
// NB: Handle this in a more clean and production ready fashion.
if let drawerViewController = children.first as? DrawerViewController {
//send distnace too
drawerViewController.delegate = self
drawerViewController.fillDrawer(hike: self.hikeModel, userLocation: self.userLocation)
}
TableView CellsForRowAt
cell.temperature.text = hikeModel.temperature
cell.weather.text = hikeModel.weather
cell.weatherIcon.text = hikeModel.weatherIcon
cell.humidity.text = hikeModel.humidity
cell.barometer.text = hikeModel.barometer
cell.sunrise.text = hikeModel.sunrise
cell.sunset.text = hikeModel.sunset
我期望 tableViewCell
在子 Controller 中加载http
之后请求在父 View Controller 中完成。
最佳答案
您的代码不完整,无法识别问题,但您应该这样做:
1)然后从Web服务加载数据,
2)重新加载tableView
在你的ViewDidLoad
let group = DispatchGroup()
group.enter()
DispatchQueue.main.sync {
self.getWeatherData(hikeLocation: self.startHikeLocationString)
group.leave()
}
数据建模完成后添加一行,它应该在mainQueue中
yourtable.reloadData()
关于ios - 如何使 Http 请求在 TableView 单元格之前按时加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383729/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我是一名优秀的程序员,十分优秀!