菜鸟教程小白 发表于 2022-12-13 08:52:09

ios - 转换与更改 UIView 的框架?


                                            <p><p>将平移和缩放转换应用于 View 并简单地将它们设置为新框架之间有什么区别?只是可以动画转换,还是需要考虑更多的事情?</p>

<p>我特别考虑在更改设备方向时应该改变位置和/或大小的 View 。 </p>

<p>谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>一个关键点,尤其是在您更改设备方向时,是在旋转后重新计算框架。在旋转之前设置框架不会影响旋转后的框架。在这种情况下,使用变换可能更有用,因为随后将根据变换属性重新计算帧。 Apple 的 <a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instp/UIView/frame" rel="noreferrer noopener nofollow">documentation</a> 的一个警告:</p>

<blockquote>
<p>WARNING
If the transform property is not the identity transform, the value of this property is undefined and therefore should be ignored.</p>
</blockquote>

<p>我发现设置比例变换通常不会产生我想要的行为;它实际上拉伸(stretch)了 View ,这(取决于 View 的设置)可以拉伸(stretch) View 中的所有图像、按钮等,并使其看起来很糟糕。 </p>

<p>通常我真正想要的行为实际上是更改 View 上的约束。因为框架是在基于约束旋转后重新计算的,所以这种方法与设备旋转一起使用比简单地改变框架要友好得多。也可以对约束更改进行动画处理。 </p>

<p>最后,我最近发现的一个真正有用的东西是,可以为您在界面构建器中创建的约束创建一个导出,因此您仍然可以在界面构建器中布置您的 View ,然后以编程方式更改约束。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 转换与更改 UIView 的框架?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31169933/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31169933/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 转换与更改 UIView 的框架?