ios - 滚动 UIScrollView - 阻塞主线程

标签 ios objective-c multithreading uitableview uiscrollview

我在 UITableView 滚动时遇到奇怪的问题,我无法调用任何事件(按下按钮、更改布局颜色)。有趣的是,当我触摸 UISeachBar 时,键盘会立即出现。 我意识到主线程已被阻塞,但我想知道是否有任何解决方案可以解决此问题。

最佳答案

根据您的问题的简短描述,我想这是因为当您滚动 tableView 运行循环时,从 NSDefaultRunLoopMode 更改为 NSEventTrackingRunLoopMode(参见 Run loops)

要在滚动时更改您的 UI,解决方案似乎是在 NSRunLoopCommonModes 上执行您的 UI 更新,其中包括您定位的两种循环模式。

防止它可能使您的 tableview 滚动笨拙。

关于ios - 滚动 UIScrollView - 阻塞主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25582830/

相关文章:

objective-c - 'EXC_BAD_ACCESS' 尝试访问变量时?

java - 聚合已完成的线程并在超时后发送响应 rX Java

multithreading - C++ Qt - 当调用槽时,该函数是否被称为新线程?

javascript - 通过javascript从iphone读取gsm号码

ios - 如何使用 SwiftUI Picker 更新 Realm 一对一关系?

Objective-C:在特定的 NSThread 中执行 block 或函数

iphone - 释放对象的校验和不正确。应用程序上非常奇怪的崩溃

c++ - ThreadPool - 如何在其成员线程完成后删除 Worker (this)

iOS Swift - CLGeocoder completionHandler block

iphone - 在 JSON 中发布用户名和密码