如何在 iOS 中构建由现有控件组成的自定义控件?
Posted
技术标签:
【中文标题】如何在 iOS 中构建由现有控件组成的自定义控件?【英文标题】:How do I build a custom control made up of existing controls in iOS? 【发布时间】:2013-11-05 05:55:09 【问题描述】:我正试图弄清楚在 Xcode 中来自 visual-studio-land 的“自定义控件”的等价物是什么。我想要一个自定义的可重用控件,它只是分段控件旁边的一个文本框,其中包含一些自定义行为,但我不知道如何制作它。
我找到了有关制作totally custom control, with its own rendering 的文章,但这太过分了。我想组合现有的控件,而不是制作全新的控件。
我尝试创建一个新的“视图”并将其用作自定义控件,在其上放置一个文本框和一个复选框。但是该视图没有显示在我可以拖动到其他视图上的内容列表中(其中列出了按钮和滑块等)。
我可以使用右侧窗口中的“自定义类”窗格从我的自定义视图继承一个空白视图,但继承视图仍然只是......空白。底层控件不应该在设计器中绘制,我不应该能够调整暴露的属性吗?
我知道这是微不足道的,我只是不知道我必须做些什么微不足道的事情才能让它发挥作用。
【问题讨论】:
【参考方案1】:您的自定义控件将需要一个自定义的 .m 和 .h 文件。如果你想使用界面生成器,它还需要一个.xib;看到这样的问题。 (Creating a custom view using a xib)
或者,您可以放弃 xib 并在 viewDidLoad: 中以编程方式设置视图。如果到目前为止您还没有这样做,那么现在可能是一个让您的脚湿透的好机会;这是一个重要的工具。
至于在 xCode 中指定您的自定义视图,界面构建器中的身份检查器允许您指定视图的类;您可以从下拉列表中选择一个自定义类,该类将在加载故事板时代替默认视图加载。
Apple 实际上建议通过将预定义的控件捆绑在一起来构建自定义控件,他们在 WWDC 的一次演讲中对此进行了讨论......我认为 'Advanced Appearance Customization on ios',从 2012 年开始。这可能是一个不错的起点。
【讨论】:
我会看谈话并报告。 讨论更多是关于如何自定义外观(考虑到标题,这很有意义),而不是制作组合控件。 您链接的答案是 C#,而不是 Objective-C。以上是关于如何在 iOS 中构建由现有控件组成的自定义控件?的主要内容,如果未能解决你的问题,请参考以下文章
您如何在 WPF 中动态(通过代码)添加在 XAML 中制作的自定义控件?