菜鸟教程小白 发表于 2022-12-13 14:00:29

ios - 如何仅在复合 UIView 的一部分应用 3d 透视变换?


                                            <p><p>我有 UIView 和 UIImageViews、UILabels、UITextView。</p>

<p>我的目标是改变中间部分,使它看起来像折叠一张纸:
- 顶部和底部保持不变,只是它们相互滑动
- 中间部分向屏幕折叠
(如在清除应用程序中:<a href="http://blog.massivehealth.com/post/18563684407/clear?cbe4fc38" rel="noreferrer noopener nofollow">http://blog.massivehealth.com/post/18563684407/clear?cbe4fc38</a>)</p>

<p>我的想法是首先加载整个 View ,然后分成 4 个部分,将中间两部分制作成 CGImage 并以某种方式用透视动画它们,同时转换顶部和底部部分,因此它们彼此滑动(最后,中间两部分部分应该变得不可见)。</p>

<p>我也应该能够展开这个 View 并滚动 UITextView。</p>

<p>我不是在寻找一个现成的答案,只是指向正确解决方案的指针。
我遇到过CALayer、CABasicAnimation和CGImage,但不知道如何解决。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我认为你的方法是合理的。由于您无法将转换应用于 View 的一部分,因此您必须将容器 View 拆分为单独的部分。您可以使用 <code>CALayer</code> 方法 <code>renderInContext:</code> 将 View 渲染为静态图像。然后,您可以将此图像拆分为您需要的部分,将图像部分放在原始 View 上(或用图像替换 View )并对图像进行动画处理。动画完成后,以新形式恢复 View 。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何仅在复合 UIView 的一部分应用 3d 透视变换?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10863295/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10863295/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何仅在复合 UIView 的一部分应用 3d 透视变换?