如何将自定义 UIButton 添加到 Interface Builder 对象库?
Posted
技术标签:
【中文标题】如何将自定义 UIButton 添加到 Interface Builder 对象库?【英文标题】:How to add a custom UIButton to Interface Builder Object Library? 【发布时间】:2012-12-08 22:36:17 【问题描述】:是否可以将子类 UIButton 添加到 XCode 4.5 Interface Builder 对象库,但作为自定义对象?
您可以在这里找到小示例项目:https://www.dropbox.com/s/ioucpb6jn6nr0hs/blabla1.zip
【问题讨论】:
虽然修改 IB 以支持自定义控件并不是不可能(正如其他人所说),但与仅仅编写相比,这肯定是太多的工作一个子类并以编程方式对其进行初始化。 【参考方案1】:无法将新对象添加到 Interface Builder 对象库,但您可以将常规 UIButton 拖出,然后在 Identity Inspector 的第三个选项卡中将 Custom Class 属性更改为您的自定义类名称。不过,您不会在 xib 文件中看到任何自定义设置。
我查看了您的示例代码。在 BlaButtonVC.m 你有方法
- (id)initWithFrame:(CGRect)frame
当您从 xib 初始化时,它不会被调用。您需要将该方法中的代码添加到
- (id)initWithCoder:(NSCoder*)coder
我测试了它并且它有效。
顺便说一句,我不认为 BlaButtonVC 是个好名字,因为它暗示你的类是一个视图控制器,而它实际上是一个视图(除非 VC 代表你项目中的其他东西)。
【讨论】:
感谢您的验证。也尝试了你推荐的方法,但没有成功,在这里你可以找到另一个有这个问题的线程:***.com/questions/13786251/… 使用 initWithCoder 方法进行了测试,现在可以正常工作了。优秀的! :) 除了你关于 VC 后缀的建议是绝对有效的,谢谢。【参考方案2】:您曾经能够在 Xcode 3 中做到这一点,但如果我没记错的话,那是一个插件的事情(BWToolkit 曾经做到这一点,并在 Xcode 4 中停止了)。您可以制作一个常规的 UIButton 并在检查器窗口中将其类更改为相同的效果。
【讨论】:
以上是关于如何将自定义 UIButton 添加到 Interface Builder 对象库?的主要内容,如果未能解决你的问题,请参考以下文章
无法将自定义 IBDesignable 类链接到情节提要上的 UIButton
将自定义图像 UIButtons 添加到自定义 UIToolbar 无法正常工作
如何将自定义 UIControl 中按下的 UIButton 传递给我的视图控制器?