Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xcode/ios7:内部视图中图像剪裁的视差效果_Ios_Objective C_Parallax - Fatal编程技术网

xcode/ios7:内部视图中图像剪裁的视差效果

xcode/ios7:内部视图中图像剪裁的视差效果,ios,objective-c,parallax,Ios,Objective C,Parallax,我正在尝试实现iOS7视差效果。为此,我使用标准UIInterpolingMotionEffect类 以下是我努力实现的目标: 将照片放在视图内。照片大于视图框架(每侧) 设置视图的大小和拐角半径(masksToBounds=YES) 移动手机,观看视差效果。类似于你们在洞内达到峰值的情况:) 几乎网络上的每个教程都只是简单地移动整个视图(通过设置center.x),但我不知道如何只移动内容(同时剪辑)。我尝试过一些东西,但显然不起作用: Inside viewDidLoad我下一步要做的是

我正在尝试实现iOS7视差效果。为此,我使用标准UIInterpolingMotionEffect类

以下是我努力实现的目标:

  • 将照片放在视图内。照片大于视图框架(每侧)
  • 设置视图的大小和拐角半径(masksToBounds=YES)
  • 移动手机,观看视差效果。类似于你们在洞内达到峰值的情况:)
几乎网络上的每个教程都只是简单地移动整个视图(通过设置center.x),但我不知道如何只移动内容(同时剪辑)。我尝试过一些东西,但显然不起作用:

Inside viewDidLoad我下一步要做的是:

- (void)viewDidLoad
{
    [super viewDidLoad];

    _myView.layer.contents = (id) [UIImage imageNamed:@"dog"].CGImage;
    _myView.layer.contentsGravity = kCAGravityCenter;
    _myView.layer.masksToBounds = YES;

    UIInterpolatingMotionEffect *horizontalMotionEffect = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"layer.position.x" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];

    horizontalMotionEffect.minimumRelativeValue = @(-80);
    horizontalMotionEffect.maximumRelativeValue = @(80);

    [_myView addMotionEffect:horizontalMotionEffect];
}
CALayer没有addMotionEffect,因此我正在访问视图

也许我的方法从一开始就不好,所以如果你有其他的解决方案,它会有帮助


谢谢您的帮助。

我认为这里更好的方法可能是使用两个单独的视图

  • 您现在拥有的包装
    ui视图
    大小与您想要的大小一致,并且
    clipstobunds
    设置为
    YES
  • 带有所需图像的
    ui图像视图
    ,作为
    ui视图
    的子视图添加
  • 然后,只需将运动效果应用于图像视图。这将使包含的视图保持静态,并实现您正在寻找的锁孔效果