屏幕显示太慢
Screen showing too slowly
我初始化了我的屏幕并加载了 viewDid
中的所有元素,将它们隐藏并设置为在解析 JSON 后显示它们,我在 [=13= 中有一个 collectionView
] 在其中同步加载我下载的元素。下载和解析 JSON 不到一秒钟,但要显示我的屏幕需要很多时间,但有趣的是,当我尝试滚动屏幕时,它会立即出现,所以我认为两者都有问题我不知道的 scrollView
或 collectionView
。有人遇到过类似情况吗?
collectionView.dataSource = self is in the .hidden = false function
代码很多,我不确定是否会有帮助。
尝试创建一个新函数来更新视图的隐藏元素
然后这样称呼它:
[self performSelectorOnMainThread:@"your-selector" withObject:nil waitUntilDone:YES]
因为在异步调用中,视图更新不会时不时地生效。
希望对您有所帮助!
对于 swift 它通过包装函数来工作,该函数在解析 JSON 之后立即取消隐藏元素:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
dispatch_async(dispatch_get_main_queue()) {
self.loadScreen()
}
})
感谢 iremk 提供 objective c 等价物:)
我初始化了我的屏幕并加载了 viewDid
中的所有元素,将它们隐藏并设置为在解析 JSON 后显示它们,我在 [=13= 中有一个 collectionView
] 在其中同步加载我下载的元素。下载和解析 JSON 不到一秒钟,但要显示我的屏幕需要很多时间,但有趣的是,当我尝试滚动屏幕时,它会立即出现,所以我认为两者都有问题我不知道的 scrollView
或 collectionView
。有人遇到过类似情况吗?
collectionView.dataSource = self is in the .hidden = false function
代码很多,我不确定是否会有帮助。
尝试创建一个新函数来更新视图的隐藏元素 然后这样称呼它:
[self performSelectorOnMainThread:@"your-selector" withObject:nil waitUntilDone:YES]
因为在异步调用中,视图更新不会时不时地生效。
希望对您有所帮助!
对于 swift 它通过包装函数来工作,该函数在解析 JSON 之后立即取消隐藏元素:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
dispatch_async(dispatch_get_main_queue()) {
self.loadScreen()
}
})
感谢 iremk 提供 objective c 等价物:)