菜鸟教程小白 发表于 2022-12-12 18:41:46

ios - self.canDisplayBannerAds 与约束冲突


                                            <p><p>在 iOS 7.1 中,使用 <code>self.canDisplayBannerAds = YES</code> 显示 iAd 似乎会在不应该的情况下将内容推高。</p>

<p> <a href="http://i.stack.imgur.com/9HQI9.png" rel="noreferrer noopener nofollow">Here is a sample project running in the iOS 7.0.3 simulator</a> </p>

<p> <a href="http://i.stack.imgur.com/w3vnu.png" rel="noreferrer noopener nofollow">And here is the same project running in the iOS 7.1 simulator</a> </p>

<p>如果我删除两个 View 之间的垂直间距约束,则不会出现错误。</p>

<p>这仅仅是 iOS 中的错误还是我的问题</p>

<p>如果有人想尝试一下,这里是示例项目:</p>

<p> <a href="https://dl.dropboxusercontent.com/u/4521046/iPhoneUITest.zip" rel="noreferrer noopener nofollow">https://dl.dropboxusercontent.com/u/4521046/iPhoneUITest.zip</a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我遇到了同样的问题,但在 iOS 8 中。我有两个圆角按钮,用它们的宽度除以 2 创建一个圆。</p>

<pre><code>override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.instructionsButton.layer.cornerRadius = self.instructionsButton.frame.width / 2
}
</code></pre>

<p>在 iAd 显示之前,这些按钮不会是一个完整的圆圈。我补充说:</p>

<pre><code> self.originalContentView.layoutSubviews()
</code></pre>

<p>进入我的viewDidLayoutSubviews:</p>

<pre><code>override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.originalContentView.layoutSubviews()
    self.instructionsButton.layer.cornerRadius = self.instructionsButton.frame.width / 2
}
</code></pre>

<p>这修复了按钮以具有正确的负载约束。
canDisplayBannerAds 的文档指出:“影响是 ViewController 的 View 属性将不再返回最初提供的 View ,它将返回新容器。要访问原始 View ,请使用 originalContentView 属性。”您必须记住将 originalContentView 用于 self.view。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - self.canDisplayBannerAds 与约束冲突,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21689814/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21689814/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - self.canDisplayBannerAds 与约束冲突