Cocoa touch 为界面生成器创建自定义按钮

Cocoa touch 为界面生成器创建自定义按钮,cocoa-touch,xcode,ios4,button,interface-builder,Cocoa Touch,Xcode,Ios4,Button,Interface Builder,有人知道如何为Interface Builder创建自定义按钮吗?我不想只有一个普通的圆形矩形按钮,我想有一个自定义的3D按钮和一些随机的图像背景。如何做到这一点?在Interface Builder中做到这一点非常复杂(编写Interface Builder插件是一项非常重要的任务)。但是,您可以将UIControl子类化(这只是一个UIView)并在子类中定义自定义绘图 然后,在Interface Builder中,将子类化的对象的类更改为新类,所有操作都应正常工作 相关阅读: (如果

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

在Interface Builder中做到这一点非常复杂(编写Interface Builder插件是一项非常重要的任务)。但是,您可以将UIControl子类化(这只是一个UIView)并在子类中定义自定义绘图

然后,在Interface Builder中,将子类化的对象的类更改为新类,所有操作都应正常工作

相关阅读:

  • (如果确实需要将UIButton子类化)

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

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

根据OP的评论进行更新


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

使用图像作为按钮的背景可能是最简单的方法。例如,您可以使用此工具轻松生成带有渐变的按钮


如果你想要更新奇的东西,也许是时候开始Photoshop了;-)

“在Interface Builder中完成这项工作可能很复杂。”不,完全不可能。IB只允许您使用现有类,如果控件有IBPalette插件,它允许您在IB的inspector中自定义现有行为。要教一个类一个新技巧,需要在代码中进行子类化。教IB如何为其新技巧提供UI需要一个IB调色板插件。这就是为什么我没有给出答案的原因。答案是“子类UIControl,这里有一些资源”。我暗示他不想这样做,并提供了一个替代方案。这并非不可能——这是一种完全的痛苦,应该不惜一切代价避免。当然,这在Xcode 4中是不可能的,但这不是问题的一部分。你确定你是在问如何使用Interface Builder本身实现这一点,还是只想知道如何使用Xcode实现这一点?如果完全正确地跳过IB,则可以非常轻松地创建自定义按钮。如果没有IB调色板插件,您将无法在IB中看到效果(或配置任何超出标准按钮配置的内容)。对不起,孩子们,也许我问错了,让我把这个问题简化一下,如何在Photoshop中创建自定义按钮并将其导入Interface Builder?这是一个完全不同的问题。:-)