代码参见 04_自定义控件
本例在之前系列的基础上,继续解说Swift。完成后,您的应用程序将如下所示:
学习目标
在课程结束时,您将能够:
-
创建自定义源代码文件并将其与故事板中的元素关联
-
定义自定义类
-
在自定义类上实现初始化程序
-
使用
UIStackView
作为一个容器 -
了解如何以编程方式创建视图
-
将辅助功能信息添加到自定义控件
-
一起工作
@IBInspectable
和@IBDesignable
显示和控制界面生成器自定义视图
创建自定义视图
为了能率一顿饭,用户需要一个控制,让他们选择,他们希望分配到饭星数。有很多方法可以实现这一点,但本课重点介绍一种直接的方法,通过组合现有的视图和控件来构建自定义控件。您将创建一个堆栈视图子类来管理表示星形的按钮行。你会在代码中完全定义自定义的控制,然后将其添加到您的故事板。
评分控件显示为一行星。
用户可以选择用餐的评分。当用户点击星形时,该星形和其前面的星形被填充。如果用户点击最右边填充的星形(与当前分级相关联的星形),则等级被清除,并且所有星星被显示为空。
要开始设计的用户界面(UI) ,互动,这种控制的行为,通过创建自定义堆栈视图(开始UIStackView
)的子类。
创建UIStackView的子类
-
选择文件>新建>文件(或按Command-N)。
-
在显示的对话框顶部,选择iOS。
-
选择Cocoa Touch Class,然后单击下一步。
-
在类字段类型
RatingControl
。 -
在现场“的子类”,选择
UIStackView
。 -
确保“语言”选项设置为“Swift”。
-
点击下一步。
保存位置默认为您的项目目录。
“组”选项默认为您的应用名称FoodTracker。
在“目标”部分中,选择您的应用,并取消选择您的应用的测试。
-
保留这些默认值,然后单击“创建”。
Xcode创建定义文件
RatingControl
类:RatingControl.swift
。RatingControl
是自定义视图的子类UIView
。 -
如果有必要,在Project Navigator中,拖动
RatingControl.swift
,这样它的定位下的其他雨燕文件的文件。 -
在
RatingControl.swift
删除附带的模板中的意见实施这样你就可以开始用一张白纸工作。实现应该看起来像这样:
-
import UIKit
-
-
class RatingControl: UIStackView {
-
-
}
-
通常,您可以创建两种方式之一一种观点:通过编程初始化的观点,或通过允许以期在故事板加载。还有每种方法相应的初始化:init(frame:)
对于编程初始化视图,并init?(coder:)