首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得类似于支持iOS 6的iOS 7主屏幕的视差运动偏移?

如何获得类似于支持iOS 6的iOS 7主屏幕的视差运动偏移?
EN

Stack Overflow用户
提问于 2013-11-24 23:01:35
回答 1查看 514关注 0票数 3

我在here上读到iOS 7提供了一种简单的方法来获得视差运动偏移。但它也表明您必须将其应用于UIView。

我需要它来做一些不同的事情(绘图算法)。如果您不想仅仅为了获取值而创建隐藏视图,您将如何获得纯CGPoint视差运动偏移?

我怎样才能得到这个视差运动偏移,这样它也能在iOS 6上运行?

EN

回答 1

Stack Overflow用户

发布于 2016-12-16 14:50:20

这个答案太晚了3年。

但是,您可以子类UIMotionEffect并覆盖keyPathsAndRelativeValues(forViewerOffset:),并根据查看器的查看位置实现想要应用于视图的任何效果。

参数viewerOffset提供了一个UIOffset实例,它将为您提供查看器的查看偏移量。您需要返回一个字典,其中keyPaths作为键,根据viewerOffset计算的相应值作为视图的任何动画属性的值。

代码语言:javascript
复制
import UIKit

class CustomMotionEffect: UIMotionEffect {

    override func keyPathsAndRelativeValues(forViewerOffset viewerOffset: UIOffset) -> [String : Any]? {
        var motionEffectDictionary = [String : Any]()

        //Horizontal
        if viewerOffset.horizontal > 0 { //Device tilted right

        } else if viewerOffset.horizontal < 0 { //Device tilted leftß

        } else {//Device horizontally perpendicular

        }

        //Vertical
        if viewerOffset.vertical > 0 { //Device tilted down

        } else if viewerOffset.vertical < 0 { //Device tilted up

        } else { //Device vertically perpendicular

        }
        return motionEffectDictionary
    }

}

这样做将确保您可以控制效果的行为方式。但是,这在iOS6上不起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20176026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档