【发布时间】:2014-11-13 12:50:32
【问题描述】:
我正在寻找将 FPS 计算为 what I said here 的方法,认为当 UITableView 滚动时,它的 drawRect: 将被逐帧调用。但它没有。
UITableView 的drawRect: 只会被调用一次,不管我是快速上下拖拽还是放按钮。 UITableView 的超级视图和单元格也是如此。所有 UIViews 的 drawRect:s 只被调用一次。
鉴于drawRect: 只调用了一次,谁负责在 UITableView 滚动时刷新 UI/Screen?
更新 1
我知道 UITableView 的委托和数据源负责布局 要显示的单元格。但是如果 tableView 只是稍微滚动呢?虽然它的 没有调用委托和数据源,屏幕的内容仍然 改变了。在这种情况下,谁来负责 iPhone 上的 UI 刷新 屏幕? scrollView 滚动 -> UIKit -> GPU -> LCD 屏幕?
【问题讨论】:
-
您可以使用滚动视图委托方法,当您向上或向下滚动时会调用它们。基于拉动刷新作品:)
-
表格视图上方有一个uiscrollview(某处)。不太确定你会如何使用它,但该类会在滚动时发送消息。
-
@AnnaDickinson
UITableView是UIScrollView的子类。 -
哦,对了。因此,您可以在自定义 UITableView 类中设置委托并覆盖 -scrollViewDidScroll 方法。
-
@SibaPrasadHota 所以你的意思是我可以通过观察scrollViewDidScroll来计算FPS:?
标签: ios iphone uitableview uikit drawrect