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

iphone - 在 iOS 上,改变 UIView 对象的框架和中心可以改变其内部坐标系吗?


                                            <p><p>在iOS上,如果我们改变一个 View 的<code>frame</code>,我们改变它的<code>bounds</code>,如果我们改变它的<code>bounds</code>,我们改变它的<code>框架</code>。</p>

<p>但是我们可以通过以下方式改变 View 的内部坐标系:</p>

<pre><code>CGRect b = v.bounds;    // v is the UIView object
b.origin.x = 10000;
b.origin.y = 10000;
v.bounds = b;
</code></pre>

<p>现在, View 的左上角是 <code>(10000, 10000)</code> 的坐标。这是否也可以通过仅更改 <code>frame</code> 和 <code>center</code> 而不是 <code>bounds</code> 来实现?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><blockquote>
<p>On iOS, if we change a view&#39;s frame, we change its bounds, and if we change its bounds, we change its frame.</p>
</blockquote>

<p>说对了一半。只有这两个矩形的 <i>sizes</i> 绑定(bind)在一起。来自文档:</p>

<blockquote>
<p>The size portion of the frame and bounds rectangles are coupled together so that changing the size of either rectangle updates the size of both.</p>
</blockquote>

<p>这并没有提到起源。因此,您的示例将修改内部坐标系的原点,而不会更改其在 superView 坐标系中的位置。您无法通过 <code>frame</code> 或 <code>center</code> 属性实现该行为;它们只影响 View 在其父 View 坐标系中的位置。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 在 iOS 上,改变 UIView 对象的框架和中心可以改变其内部坐标系吗?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10728408/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10728408/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 在 iOS 上,改变 UIView 对象的框架和中心可以改变其内部坐标系吗?