- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当用户位置发生显着变化时,我都会尝试从网络服务器加载数据。我的问题是,对于任何位置更改,tableview 都会调用“numberOfRows”,但它会等待 30 秒,直到调用“cellForRowAtIndexPath”。或者直到用户移动表格。
我有时还会遇到随机警告,表明自动布局不受主队列线程的影响(这可能与此问题有关)
我的问题出在哪里?也许我异步做两次事情不好?
这是我的代码:
import UIKit
import MapKit
class GroundListTVCTEST: UITableViewController,CLLocationManagerDelegate, UISearchBarDelegate, UISearchControllerDelegate
{
var locationManager = CLLocationManager()
var searchController :TKSearchController!
var localSearchRequest :MKLocalSearchRequest!
var localSearch :MKLocalSearch!
var localSearchResponse :MKLocalSearchResponse!
var grounds:[Ground]? {
didSet {
self.tableView.reloadData()
}
}
override func viewDidLoad() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startMonitoringSignificantLocationChanges()
let distance:CLLocationDistance = 1000.0
locationManager.distanceFilter = distance
}
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
self.locationManager.startUpdatingLocation()
print("Location Manager started.")
}
override func viewWillDisappear(animated: Bool)
{
super.viewWillDisappear(animated)
locationManager.stopUpdatingLocation()
print("Location Manager stopped.")
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
print("cellForRow called")
let cell = tableView.dequeueReusableCellWithIdentifier("Cell")
cell?.textLabel?.text = grounds?[indexPath.row].name
return cell!
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("number of rows called")
return grounds?.count ?? 0
}
// MARK: - Delegate Methods
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
print("Location Manager updated location.")
if let location = manager.location {
self.locationUpdateWithNewLocation(location)
}
}
func locationUpdateWithNewLocation(location: CLLocation)
{
GroundHelper.getAllGroundLocations(location, completionHandler: { (grounds: [Ground]?) -> Void in
self.grounds = grounds?.sort({$0.distance < $1.distance})
})
}
}
最佳答案
看起来这是因为 GroundHelper.getAllGroundLocations 在后台队列中返回值。尝试将其分派(dispatch)到主队列中:
GroundHelper.getAllGroundLocations(location, completionHandler: { (grounds: [Ground]?) -> Void in
dispatch_async(dispatch_get_main_queue(),{
self.grounds = grounds?.sort({$0.distance < $1.distance})
})
})
关于swift - CellForRow 被延迟调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009628/
每当用户位置发生显着变化时,我都会尝试从网络服务器加载数据。我的问题是,对于任何位置更改,tableview 都会调用“numberOfRows”,但它会等待 30 秒,直到调用“cellForRow
我已经使用获取函数将所有内容提取到字典数组中,当我在行的 TableView 单元格中使用它时,它是空白的。 此外,我无法使用数组计数作为行数函数,因为它是空的。我哪里出错了? 整个类代码如下: va
如果我们在两个单元格中确实有相同的内容(例如 2 个标签和 1 个 ImageView ),谁能帮助我优化以下代码。 - (UITableViewCell *)tableView:(UITableVi
这是今天发生在我身上的一件奇怪的事情: 我正在使用表格 View 来显示接下来 7 天的事件。 numberOfRowsInSection 被硬编码为始终返回 7。 func tableView(_
我有一个 numberOfSections... 方法,如下所示: - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
我看了很多帖子,仍然不确定如何解决这个问题。希望有人能帮忙。 它一直工作到最后一个数据源方法 cellForRow。那时我可以获得每个部分的正确 NSSet,但无序。对关系属性的内省(introspe
我刚刚发现当单元格不可见时 tableView.cellForRow(at: index) 返回 nil。即使它出列了,有什么办法可以得到这个细胞吗? 编辑: 我想要实现的是一个自定义副本,它将复制所
所以我有这个功能。 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableView
我正在做一个搜索栏,当您输入“nike”一词时,它必须显示自定义单元格“shop Types”,该单元格的标题中包含该名称,而且还包含品牌 nike(如果品牌数组中存在该品牌)。 目前我设法在表格 V
我有问题,我的应用程序在 cellForRowAtIndexPath 上崩溃,因为我想为 2 个不同的行添加 2 个不同的自定义表格 View 单元格。 查看我的代码。 -(UITableViewCe
我的 willDisplay 中有以下代码: func tableView(_: UITableView, willDisplay cell: UITableViewCell, forRowAt in
我有一个 View ,其中顶部有一个按钮,底部有一个带有自定义单元格的表格 View 自定义单元格我有一个文本字段,我试图通过点击顶部的那个按钮来访问 tableview 单元格之外的文本字段内容以获
我创建了一个包含所有 UITableView 协议(protocol)方法的类。我在 ViewController 中成功地使用了它,该 ViewController 的场景中有一个 tablevie
我有一个名为 RetrievePosts() 的函数,它观察 Firebase 数据库并获取我的模型的值。我在 viewdidload() 中运行它。 我的 cellForRow 根据检索到的信息更新
我正在调用 JSON 并将数据保存在数组中,然后重新加载 tableView,当我使用 dequeueReusableCell 时一切正常,但是当我更改为 cellForRow每次我设置单元格时都会崩
我不明白我做错了什么。我有一个名为 TblView_Categorie 的 UITableView,我想要做的是在所需的索引路径处获取单元格: 这是我的代码: let myRecordindex =
我正在使用带有自定义单元格的 UITableView。 它工作正常,但问题是当 UITableView 中只有一个或两个单元格时。 它还为空单元格提供分隔符。 是否可以只为使用我的自定义单元格加载的单
背景:我正在尝试实现一个可以折叠和展开的分段表格 View 。折叠时,表格会记住选择的内容并在展开时保留选择状态。 问题:a 部分已扩展并正常运行。该单元格已按应有的方式被选中。但是,位于同一位置但下
我在许多UIViewControllers中都有UITableView。该 View Controller 从 api 加载一些数据并将它们放置在 self.data 属性中。然后 TableView
我有一个 UITableView 和一个自定义单元格 IconsTableViewCell,其中包含一个 UIImageView 和一个 UILable。 如果之前选择了一行,当用户点击新行时,将取消
我是一名优秀的程序员,十分优秀!