菜鸟教程小白 发表于 2022-12-12 13:24:01

ios - UIView 的宽度和高度为零,即使它是可见的


                                            <p><p>我创建了 <code>UIView</code> 的子类并将其命名为 <code>MSMobileControlView</code>。我将 <code>UIView</code> 对象添加到启用自动布局的 Storyboard 中,并将其类分配给 <code>MSMobileControlView</code>。</p>

<p>在 <code>MSMobileControlView</code> 我有这个代码:</p>

<pre><code>-(void)didMoveToSuperview
{
    NSLog(@&#34;self.frame: %@&#34;, NSStringFromCGRect(self.frame));

    UIBUtton *levelButton = ;
    ;
    ;
    ;
}
</code></pre>

<p><code>NSLog</code> 输出为:</p>

<pre><code>self.frame: {{0, 0}, {0, 0}}
</code></pre>

<p>但是我仍然可以在屏幕上看到 View ,并且按钮会按预期响应点击。我没有与 <code>MSMobileControlView</code> 关联的其他代码。
怎么回事?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>自动布局运行时稍后将值分配给框架。如果您想查看这些分配的值,请将您的 <code>NSLog</code> 放在 <code>viewDidLayoutSubviews</code> 中。 </p>

<p>如果在开始使用自动布局时我会给你一条建议,那就是忘记框架。只需使用约束即可。让自动布局代表您操作框架,为您提供约束指定的布局。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIView 的宽度和高度为零,即使它是可见的,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18144163/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18144163/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIView 的宽度和高度为零,即使它是可见的