【问题标题】:Create custom buttons for Interface Builder为 Interface Builder 创建自定义按钮
【发布时间】:2011-07-02 22:29:01
【问题描述】:

有谁知道如何为 Interface Builder 创建自定义按钮?就像不是只有一个普通的圆形矩形按钮,我想要一个自定义 3D 按钮和该按钮的一些随机图像背景。如何做到这一点?

【问题讨论】:

  • 您确定要询问如何使用 Interface Builder per se 执行此操作,还是只想知道如何使用 xCode 执行此操作?如果您完全跳过 IB,您可以非常轻松地创建自定义按钮。
  • @MusiGenesis 完全正确。如果没有 IB 调色板插件,您将无法在 IB 中看到效果(或配置超出标准按钮可配置项的任何内容)。
  • 对不起,小伙伴们,我可能问错了,让我把这个问题简单点,如何在 Photoshop 中创建自定义按钮并将其导入 Interface Builder?
  • 这是一个完全不同的问题。 :-)

标签: cocoa-touch xcode ios4 button interface-builder


【解决方案1】:

您将需要找到一个第三方类(最好使用 Interface Builder 插件,以便您可以在 IB 文件中看到它)或子类 UIButton 或 Mac 的 NSButton/NSButtonCell 并提供您自己的 3D 彩虹独角兽绘图行为。 :-)

Interface Builder 只能向您显示它所知道的类 - 您不能在那里添加行为/修改现有的绘图行为,因为那是工作的错误工具。您需要在代码中找到其他人的或子类然后让 IB 知道。

根据 OP 的评论更新

您可以使用-setImage:forState: 为给定状态提供自定义图像。

【讨论】:

    【解决方案2】:

    在 Interface Builder 中执行此操作非常复杂(编写 Interface Builder 插件是一项艰巨的任务)。但是,您可以继承 UIControl(它只是一个 UIView)并在子类中定义您的自定义绘图。

    然后,在 Interface Builder 中,将您子类化的对象的类更改为新类,一切都应该正常工作。

    相关阅读:

    【讨论】:

    • “在 Interface Builder 中执行此操作可能很复杂。” 不,这完全不可能。 IB 只允许您使用现有的类,如果控件有一个 IBPalette 插件,它允许您自定义 IB 检查器中的现有行为。要教授一门新技巧,需要在代码中进行子类化。教 IB 为其新技巧提供 UI 需要一个 IB 调色板插件。
    • 这就是为什么这不是我给出的答案。答案是“子类 UIControl,这里有一些资源”。
    • 我暗示他不想那样做,并提供了替代方案。这并非不可能——它完全痛苦的,应该不惜一切代价避免。 edit 当然,这在 Xcode 4 中是不可能的,但这不是问题的一部分。
    【解决方案3】:

    使用图像作为按钮的背景可能是最简单的方法。例如,您可以使用此工具轻松生成带有渐变的按钮,http://itunes.apple.com/us/app/uibutton-builder/id408204223?mt=8

    如果您想要更花哨的东西,可能是时候开始使用 Photoshop 了;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多