gpt4 book ai didi

ios - 有没有办法在 iPad 上为表单启用视差?

转载 作者:行者123 更新时间:2023-11-28 22:12:06 25 4
gpt4 key购买 nike

感谢您的出现:-)

我注意到 iPad 上的表单 View 没有任何 iOS 7 视差效果,实际上我想加入它,因为我觉得它看起来很酷。

No parallex effect *sad face*

嗯,这就是我所拥有的,但它没有,那么有没有办法做到这一点?一个人会怎么做呢?我用谷歌搜索了又搜索,但谷歌终于让我失望了,因为没有合适的东西出现。

谢谢:)

最佳答案

这可以通过一些努力来完成。

首先,您需要知道如何在一般情况下为 View 添加视差:

我有以下 UIView 类别方法来简化操作:

- (void)addDepthMotionX:(CGFloat)x y:(CGFloat)y {
Class clazz = NSClassFromString(@"UIInterpolatingMotionEffect");
if (clazz) {
BOOL reverse = NO;
if (CGAffineTransformEqualToTransform(self.transform, CGAffineTransformMakeRotation(-M_PI_2)) || CGAffineTransformEqualToTransform(self.transform, CGAffineTransformMakeRotation(M_PI_2))) {
reverse = YES;
}

UIInterpolatingMotionEffect *eff = [[clazz alloc] initWithKeyPath:@"center.x" type:reverse ? UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis : UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
eff.maximumRelativeValue = @(x);
eff.minimumRelativeValue = @(-x);
[self addMotionEffect:eff];
eff = [[clazz alloc] initWithKeyPath:@"center.y" type:reverse ? UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis : UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
eff.maximumRelativeValue = @(y);
eff.minimumRelativeValue = @(-y);
[self addMotionEffect:eff];
}
}

代码受到保护,因此如果从 iOS 7(或更高版本)以外的系统调用它不会崩溃。

现在要为 View 添加视差,您只需执行以下操作:

[someView addDepthMotionX:10 y:10]; // pick an appropriate depth value

你的问题的最后一步是将它应用到你正在显示的 View Controller 的根。

您可以在 View Controller 的 viewWillAppear: 方法中添加以下代码。调整以满足您的需求:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

if (self.isBeingPresented || self.isMovingToParentViewController) {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && self.modalPresentationStyle == UIModalPresentationFormSheet) {
[self.navigationController.view.superview addDepthMotionX:15 y:15];
}
}
}

此代码的一个问题是,如果用户在呈现表单后将 iPad 旋转 90 度,则需要更新视差效果。但这会让您入门。

关于ios - 有没有办法在 iPad 上为表单启用视差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22649639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com