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)