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'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]