我不知道我是否正确思考,但我的问题是我在UITableView中有自定义单元格(看起来像汽车),每个单元格包含2个UIImageViews(滚轮图像),当UITableView向上滚动向上滚动时,我需要旋转滚轮图像,所以我可以将所有滚轮图像指向一个图像,然后在UITableView滚动时立即旋转此图像吗?
这是我的代码
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint currentOffset = scrollView.contentOffset;
if (currentOffset.y > self.lastContentOffset.y)
{
self.wheelImage.transform = CGAffineTransformRotate(self.wheelImage.transform,- M_PI / 4);
}
else
{
self.wheelImage.transform = CGAffineTransformRotate(self.wheelImage.transform, M_PI / 4);
}
self.lastContentOffset = currentOffset;
}
抱歉我的英语不好,并提前致谢。
答案 0 :(得分:1)
这是我到目前为止找到的最佳答案,而且工作得很好,但我需要让它变得更加真实(应用物理公式):
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
int fragment = 20;
for(UITableViewCell *cell in [self.showsTable visibleCells]){
if ([cell isKindOfClass:[ShowCell class]]){
CGPoint currentOffset = scrollView.contentOffset;
if (currentOffset.y > self.lastContentOffset.y){
[[(ShowCell*)cell wheel1Image] setTransform:CGAffineTransformRotate([(ShowCell*)cell wheel1Image].transform, M_PI / fragment)];
[[(ShowCell*)cell wheel2Image] setTransform:CGAffineTransformRotate([(ShowCell*)cell wheel2Image].transform, M_PI / fragment)];
}
else{
[[(ShowCell*)cell wheel1Image] setTransform:CGAffineTransformRotate([(ShowCell*)cell wheel1Image].transform,- M_PI / fragment)];
[[(ShowCell*)cell wheel2Image] setTransform:CGAffineTransformRotate([(ShowCell*)cell wheel2Image].transform,- M_PI / fragment)];
}
self.lastContentOffset = currentOffset;
}
}
}
答案 1 :(得分:0)
我相信你不能这样做。您需要的是从reloadData
方法拨打UITableView
scrollViewDidScroll
。调用reloadData
将调用cellForRawAtIndexMethod
,并且在该方法中,您应该根据当前偏移量更新每个单元格的轮子变换。