iphone - UICollectionViewCell 抖动

标签 iphone ios ios6 uicollectionview

我创建了一个 UICollectionView 并希望所有单元格都像 iPhone 上跳板的编辑模式一样摇动。我已经创建了我的 shake 代码,但不知道如何实现它。我有自定义单元格,所以我假设它在那里,但不知道它是如何实现的。谢谢。

#define degreesToRadians(x) (M_PI * (x) / 180.0)
#define kAnimationRotateDeg 0.5
#define kAnimationTranslateX 1.0
#define kAnimationTranslateY 1.0

//startJiggling

int count = 1;
CGAffineTransform leftWobble = CGAffineTransformMakeRotation(degreesToRadians( kAnimationRotateDeg * (count%2 ? +1 : -1 ) ));
CGAffineTransform rightWobble = CGAffineTransformMakeRotation(degreesToRadians( kAnimationRotateDeg * (count%2 ? -1 : +1 ) ));
CGAffineTransform moveTransform = CGAffineTransformTranslate(rightWobble, -kAnimationTranslateX, -kAnimationTranslateY);
CGAffineTransform conCatTransform = CGAffineTransformConcat(rightWobble, moveTransform);

    self.transform = leftWobble;  // starting point

    [UIView animateWithDuration:0.1
                          delay:(count * 0.08)
                        options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse
                     animations:^{ self.transform = conCatTransform; }
                     completion:nil];

最佳答案

如果您将代码放在自定义单元格中名为 startJiggling 的方法中,那么您可以在 Controller 中调用此方法:

[self.collectionView.visibleCells makeObjectsPerformSelector:@selector(startJiggling)];

这确保所有可见的单元格都将开始抖动。

然后我还会设置一些标志,指示您的单元格应该抖动并在 collectionView:cellForItemAtIndexPath: 中测试它。如果是,则调用您的方法。

关于iphone - UICollectionViewCell 抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025600/

相关文章:

iphone - 在 iPhone 上自定义 NSLog 函数

ios - 如何在 iPhone 中捕捉相机的可见 View

iphone - 在 UITableView 中,我可以有两个部分,每个部分的单元格长度可变吗?

ios - EXC_BAD_ACCESS 代码=EXC_ARM_DA_ALIGN

ios6 - 风格 View 像 iPhone 应用商店应用程序吗?

ios - 即使我调用 stopUpdatingLocation,位置管理器图标仍然显示

ios - 覆盖 loadView 会导致 viewDidLoad 和 loadView 在每次出现 VC 时触发

iphone - 如何在最佳GPS位置调用URL API?

iphone - 与 UIGestureRecognizer 一起监听 UITouch 事件

ios - 使用 AFNetworking 解析 XML