使所有UIImageViews指向静态UIImageView

时间:2013-04-21 10:09:47

标签: iphone ios uitableview animation scroll

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

抱歉我的英语不好,并提前致谢。

2 个答案:

答案 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,并且在该方法中,您应该根据当前偏移量更新每个单元格的轮子变换。