【问题标题】:Apply barrel distortion to UIView对 UIView 应用桶形失真
【发布时间】:2009-11-03 10:38:26
【问题描述】:

我有一个 UIScrollview,它填充了一个横向屏幕,其中包含一棵 UIView 的小树,我可以在其中水平滚动。我想对滚动视图应用桶形失真,以便当子视图从外部移动到滚动视图的中心时,它们会改变形状。

应用这样的扭曲有什么好处?

有没有办法为滚动视图覆盖 drawRect,在位图上绘制,扭曲它,然后将其绘制到 ScrollView 的上下文中?还是有内置的 API 来处理这种失真?


(来源:arielnet.com

【问题讨论】:

    标签: iphone uiview uiscrollview distortion


    【解决方案1】:

    您可以通过正确转换每个 UIView 的图层来接近此效果。使用 CATransform3D,您可以在 3-D 以及apply a perspective effect 中旋转和平移每个图层。对于您的情况,您可以翻译每个 UIView 层,使它们像一个旋转木马,中间视图向前并直接在屏幕上,而侧面层从屏幕稍微倾斜和凹陷。这不会导致图层本身的曲率(它们仍将绘制为矩形),但如果您在主视图的图层上应用变换以创建透视效果,您应该能够非常接近。

    对于这种层的 3-D 定位示例,我推荐 this example,其中一个完整的 3-D 迷宫是由 CALayers 构建的。

    就滚动视图而言,您可能必须为此进行自定义触摸处理。您可能可以通过重新设置 UIScrollViewDelegate 方法(如 scrollViewDidScroll:)来解决问题,但我自己没有尝试过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 2016-04-19
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      相关资源
      最近更新 更多