我遇到了 UIInterpolatingMotionEffect
类的问题,应用程序可以编译,但是当我尝试存档时,出现了这个编译错误:No visible @interface for 'UIInterpolatingMotionEffect' declares the selector 'initWithKeyPath:type:'
我在此函数的 UIInterpolatingMotionEffect
初始化程序上收到此错误:
- (void)addMotionEffects
{
UIInterpolatingMotionEffect *horizontalMotionEffect = [[UIInterpolatingMotionEffect alloc]
initWithKeyPath:@"center.x" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
horizontalMotionEffect.minimumRelativeValue = @(-20);
horizontalMotionEffect.maximumRelativeValue = @(20);
UIInterpolatingMotionEffect *verticalMotionEffect = [[UIInterpolatingMotionEffect alloc]
initWithKeyPath:@"center.y" type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
verticalMotionEffect.minimumRelativeValue = @(-20);
verticalMotionEffect.maximumRelativeValue = @(20);
UIMotionEffectGroup *group = [UIMotionEffectGroup new];
group.motionEffects = @[horizontalMotionEffect, verticalMotionEffect];
[self.containerView addMotionEffect:group];
}
我认为在尝试针对 arm64 架构进行编译时会出现一种错误,但我无法弄清楚如何解决该问题。
有任何想法吗?
最佳答案
这是一个WTF的答案,也是一个WTF的问题,但有效......
为了避免编译错误,我使用提供错误的选择器为 UIInterpolatingMotionEffect
创建了一个类别。但仍然不知道为什么 Xcode 不存档没有这个...
@interface UIInterpolatingMotionEffect (lol)
- (instancetype)initWithKeyPath:(NSString *)keyPath type:(UIInterpolatingMotionEffectType)type;
@end