我为我的应用中的每个视图使用垂直和水平的UIInterpolatingMotionEffect。
_horizontalEffect = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
_verticalEffect = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y" type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
.minimum和.maximum相对值是相对于视图的大小,每次视图大小更改时都会更改。
_horizontalEffect.minimumRelativeValue = @(size.width / 10.0);
_horizontalEffect.maximumRelativeValue = @(-size.height / 10.0);
_verticalEffect.minimumRelativeValue = @(size.width / 10.0);
_verticalEffect.maximumRelativeValue = @(-size.height / 10.0);
用户可以使用UISlider 更改视图的大小。此外,他可以进行大量的视图。在没有移动设备的情况下,所有视图的中心都会发生变化。
问题是,如果设备没有移动,则视图不会根据UIInterpolatingMotionEffect进行更新,并且它们看起来不对齐。
如何在不移动设备的情况下强制UIInterpolatingMotionEffect刷新视图?
也许,我问的是错误的问题,但我真的需要一些指导。