Ios 视差效果与UIMotionEffect不起作用
我的Ios 视差效果与UIMotionEffect不起作用,ios,swift,uikit,parallax,uimotioneffect,Ios,Swift,Uikit,Parallax,Uimotioneffect,我的UIView视差效果根本不起作用。我需要像iPhone tilt(伪3D)上的移动背景图像这样的东西 我试过使用这个代码。我已经阅读了,但是我的imageView仍然是静态的 我使用的是Xcode 11,iOS 13。在您共享的代码中,我注意到的一件事是,您在枚举中使用了大写字母T。TiltAlongHorizontalAxis和。TiltAlongVerticalAxis,它们没有编译(至少在Xcode 11.4.1上)->需要更改为小写的T 苹果关于这些枚举的文档是 除此之外,我认为您共
UIView
视差效果根本不起作用。我需要像iPhone tilt(伪3D)上的移动背景图像这样的东西
我试过使用这个代码。我已经阅读了,但是我的imageView
仍然是静态的
我使用的是Xcode 11,iOS 13。在您共享的代码中,我注意到的一件事是,您在枚举
中使用了大写字母T
。TiltAlongHorizontalAxis
和。TiltAlongVerticalAxis
,它们没有编译(至少在Xcode 11.4.1上)->需要更改为小写的T
苹果关于这些枚举的文档是
除此之外,我认为您共享的代码没有任何问题。事实上,我创建了一个示例项目,在视图中添加了约束,使用了一个简单的imageView
,这样它就填满了superview的整个空间
然后,我添加了您共享的运动效果代码,并在实际设备(iPad Pro)上运行。它工作得很好
您能否检查一些可能是问题根源的事项:
- 仔细检查
设置
可访问性
运动
是否未启用。因为如果打开它,则减少运动
将无法工作ui插值运动效果
- 测试您正在测试的设备的加速计是否实际工作。或者更好的是,使用另一个设备来测试它。(这在模拟器上不起作用)
- 如果您正在任何地方的代码中(尤其是在
/viewWillLayout
中)编辑viewdillayout
的框架,您不应该这样做imageView
在任何情况下,如果这些都不能帮助您解决问题,您能否创建一个简单的示例项目来演示这个bug并将其发布到Github上?如果我真的可以重现问题,我可以尝试提供帮助。您正在将效果应用于表的一部分或集合视图的
imageView
?如果是这样的话,你可能想看看:不,这只是常规的UIImageView,仅限于Superview谢谢!!!!!再次检查“设置>辅助功能>运动>减少运动”是否处于启用状态,该功能将正常工作。因为如果启用,UIInterpolingMotionEffect将无法工作。
let horizontalMotionEffect = UIInterpolatingMotionEffect(keyPath: "center.x", type: .TiltAlongHorizontalAxis)
horizontalMotionEffect.minimumRelativeValue = -50
horizontalMotionEffect.maximumRelativeValue = 50
let verticalMotionEffect = UIInterpolatingMotionEffect(keyPath: "center.y", type: .TiltAlongVerticalAxis)
verticalMotionEffect.minimumRelativeValue = -50
verticalMotionEffect.maximumRelativeValue = 50
let motionEffectGroup = UIMotionEffectGroup()
motionEffectGroup.motionEffects = [horizontalMotionEffect, verticalMotionEffect]
imageView.addMotionEffect(motionEffectGroup)