菜鸟教程小白 发表于 2022-12-11 19:34:42

ios - 无法在 Interface Builder 上预览 IBDesignable 自定义组件


                                            <p><p>我正在尝试制作一个可以在 Interface Builder 上预览的自定义 UI 组件。首先,我尝试自己编写代码,但无法完成(它适用于构建的应用程序,但无法在 IB 上预览。)</p>

<p>当然,我怀疑我的代码有问题,所以我从我引用的教程中抓取了这个项目。</p>

<p> <a href="https://cheesecakelabs.com/blog/building-custom-ui-controls-xcodes-interface-builder/" rel="noreferrer noopener nofollow">https://cheesecakelabs.com/blog/building-custom-ui-controls-xcodes-interface-builder/</a> </p>

<p>但结果只是显示一个矩形,而不是在自定义组件中显示两个按钮。
我构建了项目,但它没有对预览生效。</p>

<p>我认为是以下原因之一,但基本上我不知道它的进一步细节。有人知道吗? </p>

<ol>
<li>InterfaceBuilder 自教程以来发生了一些变化
上面的链接是写的(2017 年 9 月)</li>
<li>教程一开始就错了</li>
<li>我在 XCode/InterfaceBuilder 中的配置有误</li>
<li>我误解了上述教程的目的,并且无法以任何方式预览该自定义组件上的按钮</li>
</ol>

<p>或者,如果有人在预览此自定义组件时有成功/失败的经验,请告诉我。</p>

<p>谢谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>显然,当 <code>@IBDesignable</code> 控件在 IB 中呈现时,<code>AwesomeView.xib</code> 中按钮的预定义 Title 属性会覆盖用户定义的属性。 </p>

<p>不确定这是设计使然还是错误(我倾向于它是错误)。</p>

<p>要绕过它,您可以:</p>

<p>打开<code>AwesomeView.xib</code>并删除“Button 1”和“Button 2”标题</p>

<p>或</p>

<p>在<code>initNib()的末尾添加这一行</code>:</p>

<pre><code>button1.setTitle(&#34;&#34;, for: .normal)
</code></pre>

<p>最初,您只会看到空白按钮...但在 IB 中设置 <code>button1Title</code> 应该可以。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 无法在 Interface Builder 上预览 IBDesignable 自定义组件,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/48164351/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/48164351/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 无法在 Interface Builder 上预览 IBDesignable 自定义组件