我有一个UIScrollView
,我纯粹是为了contentOffset
使用它。随着contentOffset
的更改,我的子视图会根据简单的数学函数移动。大多数情况下,这需要调整y位置,而不是相对于UIScrollView
contentOffset.y
线性调整。
调整yPosition的一个例子可能是这样的:
CGRect newFrame = subview.frame;
newFrame.origin.y = log(scrollView.contentOffset.y) + 300;
[subview setFrame:newFrame];
在UIScrollView
没有接收到触摸(~24-30fps)的情况下,模拟器中的一切工作正常并在设备上运行良好,但是当用户触摸屏幕并拖动时,fps会下降到~3-5fps。在拖动和不拖动之间,除了在运行循环中之外,不应该有任何区别。为了进行调整,我甚至在scrollViewDidScroll:
[self performSelector:@selector(updateCards) onThread:[NSThread mainThread] withObject:nil waitUntilDone:YES modes:@[NSRunLoopCommonModes, UITrackingRunLoopMode]];
和变化,但没有效果。
是否有理由让fps下降,我可以做些什么来解决这个问题?我在大多数测试中都使用iPod 5th。