您可以使用界面生成器在 xcode 中制作自定义视图吗?

Posted

技术标签:

【中文标题】您可以使用界面生成器在 xcode 中制作自定义视图吗?【英文标题】:Can you make a custom view in xcode using interface builder? 【发布时间】:2011-08-08 11:08:29 【问题描述】:

不是视图控制器,而是实际视图

我的应用将在两个单独的部分中包含一个钢琴键盘。我宁愿让键盘成为自定义视图并将其实现到相应的视图控制器中,而不是为每个部分复制代码。但是,似乎对每个键的位置进行编码会很痛苦,所以我希望有某种方法可以直观地做到这一点。

如果没有,有没有办法让键盘成为自己的视图控制器,然后将其添加为代表应用程序不同部分的视图控制器的子类?

谢谢

【问题讨论】:

【参考方案1】:

所以你的意思是每个钢琴键都是一个单独的 UIView,你可以有一个包含键子视图的 UIControl 子类(UIView 子类),在我看来,在你的 UIContol 子类中添加所有的会更容易实用的每个键的 UIView 子类,因为每个键之间存在很好的数学关系,然后您可以将 UIControl 在视图中放置两次,并将其子类设置为您自定义的 UIControl 类。然后,您可以通过覆盖 -[UIView layoutSubviews] 来添加单独的关键 UIView 子类,如果需要,您可以在界面构建器中手动添加关键 UIView,但这似乎需要更多工作。您可以根据需要在界面构建器中拥有尽可能多的子类键盘实例,并且它们都没有,每个都必须有自己的 UVIewController,您的键盘子类可以是每个按钮的每个按键的目标,然后将其传递到无论如何你想要的视图控制器,虽然我现在不知道如果你需要的话你会如何处理复音,

【讨论】:

【参考方案2】:

不确定您要问什么,您可以在界面中添加一个 View 类,然后在 Utilities Panel > Identity Inspector 下有一个自定义类字段,您可以将其更改为 NSView 的自定义子类。

如果你想创建你自己的 Customer fire 并显示在 interface builder 搜索自定义 IBPlugins 中,我没有尝试使用 Xcode 4 执行此操作,所以我不知道自 Interface Builder 推出以来它发生了多大变化与 Xcode 4 集成。虽然这是我必须寻找的东西,但我有自己的自定义控件之一。

【讨论】:

我的意思是我想创建一个自定义视图,而不是硬编码 drawCGRect 方法,我可以直观地放置子视图。 你的意思是每个钢琴键都是独立的 您可以在界面生成器中添加所有键,然后设置每个自定义子类

以上是关于您可以使用界面生成器在 xcode 中制作自定义视图吗?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在界面生成器中制作渐变背景颜色?

通过属性检查器使用 xcode 自定义字体

您可以在 C++ 中制作自定义运算符吗?

自定义按钮在界面生成器中未正确显示

推动视图表的自定义 sql

带有身份检查器的自定义 Xcode 选择器