【问题标题】:Make All UIImageViews Point to Static UIImageView使所有 UIImageViews 指向静态 UIImageView
【发布时间】:2013-04-14 08:21:59
【问题描述】:

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

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

【问题讨论】:

    标签: iphone ios uitableview animation scroll


    【解决方案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;
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢 Andery 的回复,但也许您的解决方案会出现性能问题并且滚动会挂起(我不确定,但我认为是这样)。我找到了另一个解决方案并已发布,请告诉我您的反馈
      猜你喜欢
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多