将SKScene添加到UICollectionViewCell会降低滚动性能

时间:2016-04-27 18:41:57

标签: ios sprite-kit uicollectionviewcell skscene skview

我正在尝试将带有简单动画的SKScene添加到UICollectionCell。

我在集合视图单元格的.xib文件中设置了SKView。

如果我运行并滚动,它会按预期工作。但是,如果我更改为另一个视图控制器(在标签栏控制器中)也使用这些类型的单元格并开始滚动,它将被卡住。

以下是我添加SKScene的方法:

@interface MAPostCollectionViewCell ()

@property (strong, nonatomic) IBOutlet SKView *viewAnimation;
@property (strong, nonatomic) MAHeartAnimation *heartScene;

@end

@implementation MAPostCollectionViewCell

-(void)layoutSubviews{

    [super layoutSubviews];

    self.heartScene = [MAHeartAnimation sceneWithSize:self.viewAnimation.bounds.size];
    self.heartScene.scaleMode = SKSceneScaleModeAspectFill;

    [self.viewAnimation presentScene:self.heartScene]; 

}

@end

如果用户点击按钮,我只触发动画。

但是对于这个问题的范围,动画并不重要,因为我没有触摸那个按钮,只是滚动UICollectionView。

1 个答案:

答案 0 :(得分:0)

事实证明你不应该这样使用SpriteKit和UIKit。即使它们是模块化框架,但在以这种方式一起使用时它们也不具备性能。我最终通过使用CALayers将UIKit用于我想要的动画。