1

我不知道我的想法是否正确,但我的问题是我在 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;
}

对不起我的英语不好,提前谢谢。

4

2 回答 2

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;
        }
    }
}
于 2013-04-21T13:02:24.260 回答
0

我相信你不能这样做。你需要的是调用reloadData你的UITableViewfromscrollViewDidScroll方法。调用reloadData将调用cellForRawAtIndexMethod,并且在该方法中,您应该根据当前偏移量更新每个单元格的轮子变换。

于 2013-04-21T10:37:16.903 回答