PHP开篇
|
|
- 纯 董
- 7 years ago
- Views:
Transcription
1 第 2 章 UI 控 件 学 习 目 标 掌 握 什 么 是 UIView 及 UIView 提 供 的 常 见 属 性 和 方 法 掌 握 常 见 UI 控 件 的 使 用, 能 够 灵 活 使 用 控 件 开 发 ios 应 用 一 个 用 户 体 验 良 好 的 的 应 用, 都 离 不 开 友 好 的 图 形 用 户 界 面,iOS 应 用 开 发 的 一 项 重 要 内 容 就 是 用 户 界 面 的 开 发,iOS 提 供 了 大 量 功 能 丰 富 的 UI 控 件, 开 发 者 只 要 按 一 定 规 律 将 这 些 UI 控 件 组 合 起 来, 就 可 以 开 发 出 优 美 的 图 形 用 户 界 面 本 章 将 针 对 ios 中 的 UI 控 件 进 行 详 细 讲 解 2.1 UIView 概 述 什 么 是 UIView 在 ios 开 发 中, 每 个 UI 控 件 都 相 当 于 一 个 个 小 的 积 木, 这 些 控 件 都 继 承 了 UIView 曾 经 有 人 这 么 说 过, 在 iphone 中, 你 看 到 的 摸 到 的 都 是 UIView, 比 如, 按 钮 图 片 文 字 等 既 然 UIView 是 所 有 控 件 的 父 控 件, 那 么 它 必 定 拥 有 很 多 子 控 件, 接 下 来, 通 过 一 张 图 来 描 述 UIView 的 继 承 体 系 结 构, 如 图 2-1 所 示 1
2 图 2-1 UIView 继 承 体 系 图 从 图 2-1 中 可 以 看 出,UIView 继 承 体 系 中 的 类 具 有 不 同 的 层 次 关 系, 例 如,UIView 继 承 自 UIResponder, 它 提 供 了 许 多 子 类, 如 UILabel UITabBar UIPickerView UIControl 等 其 中,UIControl 类 又 提 供 了 子 类 UIButton UITextField UITextView 等 通 常 情 况 下, 继 承 UIView 的 子 类 对 象 也 称 为 视 图 为 了 便 于 大 家 更 好 地 理 解 这 些 类, 接 下 来, 通 过 一 个 应 用 程 序 界 面 来 讲 解 这 些 类 的 具 体 应 用, 如 图 2-2 所 示 2
3 图 2-2 应 用 程 序 界 面 从 图 2-2 中 可 以 看 出, 应 用 程 序 的 界 面 都 是 由 一 个 一 个 的 控 件 组 成 的, 这 些 控 件 对 应 的 是 不 同 的 类, 这 些 类 在 后 面 的 章 节 中 都 会 进 行 详 细 讲 解, 这 里 大 家 有 个 大 致 印 象 即 可 UIView 的 常 见 属 性 和 方 法 在 开 发 ios 程 序 时, 经 常 需 要 修 改 UI 控 件 的 显 示 状 态, 例 如, 文 件 下 载 的 进 度 条 是 实 时 更 新 的, 论 坛 访 问 人 数 也 是 实 时 变 化 的, 这 些 UI 控 件 状 态 的 修 改, 其 实 就 是 通 过 修 改 UI 控 件 属 性 实 现 的 虽 然 不 同 的 UI 控 件 都 有 自 己 独 特 的 属 性, 但 某 些 属 性 是 每 个 UI 控 件 都 具 备 的 UIView 提 供 了 许 多 公 共 的 属 性, 例 如, 每 个 UI 控 件 都 有 自 己 的 位 置 和 尺 寸, 每 个 UI 控 件 都 有 父 控 件 子 控 件 接 下 来, 通 过 一 张 表 来 列 举 UIView 的 常 见 属 性, 如 表 2-1 所 示 表 2-1 UIView 的 常 见 属 性 属 性 声 UIView NSArray CGAffineTransform NSInteger CGRect CGRect bounds; 功 能 描 述 用 于 获 得 自 己 的 父 控 件 对 象 用 于 获 取 自 己 所 有 的 子 控 件 对 象 用 于 表 示 控 件 的 形 变 属 性 ( 可 以 设 置 旋 转 角 度 比 例 缩 放 平 移 等 属 性 ) 用 于 表 示 控 件 的 ID( 标 识 ), 父 控 件 可 以 通 过 tag 来 找 到 对 应 的 子 控 件 控 件 所 在 矩 形 框 在 父 控 件 中 的 位 置 和 尺 寸 ( 以 父 控 件 的 左 上 角 为 左 边 原 点 ) 用 于 表 示 控 件 所 在 矩 形 框 的 位 置 和 尺 寸 ( 以 3
4 @property(nonatomic) CGPoint CGFloat alpha; 自 己 左 上 角 为 坐 标 原 点 ) 控 件 中 点 的 位 置 ( 以 父 控 件 的 左 上 角 为 坐 标 原 点 ) 用 于 控 制 控 件 的 透 明 度, 其 值 支 持 0.0~1.1 的 任 意 浮 点 数 值 表 2-1 列 举 了 UIView 的 常 见 属 性, 其 中,bounds 属 性 是 以 自 己 左 上 角 为 坐 标 原 点 定 义 控 件 所 在 矩 形 的 位 置 和 尺 寸, 因 此, 它 可 以 实 现 控 件 大 小 的 定 义 ; center 属 性 则 是 以 父 控 件 的 左 上 角 为 左 边 原 点 定 义 控 件 中 点 的 位 置, 它 可 以 实 现 控 件 位 置 的 定 义 ; 而 tag 属 性 则 可 以 定 义 控 件 的 标 识, 它 既 可 以 定 义 控 件 的 位 置, 也 可 以 定 义 控 件 的 大 小 除 此 之 外,UIView 还 提 供 了 许 多 常 见 的 方 法, 具 体 如 表 2-2 所 示 方 法 声 明 表 2-2 UIView 的 常 见 方 法 功 能 描 述 - (void)addsubview:(uiview *)view; 用 于 添 加 一 个 子 控 件 view - (void)removefromsuperview; 用 于 从 父 控 件 中 移 除 - (UIView *)viewwithtag:(nsinteger)tag; 根 据 控 件 的 tag 标 识 找 出 对 应 的 控 件 表 2-2 列 举 了 UIView 的 三 个 常 见 方 法, 其 中,addSubview: 方 法 用 于 向 当 前 视 图 添 加 一 个 子 视 图, 并 将 该 子 视 图 的 保 留 计 数 加 1;removeFromSuperview 方 法 会 从 父 视 图 中 移 除 当 前 视 图, 并 将 当 前 视 图 的 保 留 计 数 减 1; 为 了 方 便 查 找 控 件, 通 常 情 况 下, 我 们 都 会 为 每 个 控 件 添 加 一 个 Tag, 如 果 想 根 据 Tag 查 找 对 应 的 控 件, 则 可 以 使 用 viewwithtag: 方 法 来 实 现 脚 下 留 心 :UIKit 坐 标 系 在 实 际 开 发 中, 经 常 需 要 对 视 图 进 行 各 种 变 换, 比 如, 缩 放 平 移 旋 转 等 而 在 进 行 这 些 操 作 之 前, 都 需 要 明 确 当 前 视 图 的 位 置 和 尺 寸, 而 这 些 数 值 都 与 UIKit 坐 标 系 有 关 接 下 来, 通 过 一 张 图 来 描 述 UIKit 是 如 何 定 义 坐 标 系 的, 具 体 如 图 2-3 所 示 图 2-3 UIKit 坐 标 系 4
5 从 图 2-3 中 可 以 看 出,UIKit 坐 标 系 中 的 原 点 位 于 左 上 角, 横 坐 标 正 方 向 水 平 向 右 延 伸, 纵 坐 标 正 方 向 竖 直 向 下 延 伸, 并 且 图 中 所 示 的 iphone 的 屏 幕 尺 寸 为 标 签 控 件 和 图 片 控 件 UIView 提 供 了 许 多 子 类, 这 些 子 类 分 别 代 表 不 同 的 控 件 在 众 多 的 控 件 中, 有 些 控 件 几 乎 在 每 个 应 用 程 序 中 都 会 用 到, 例 如, 用 于 文 本 显 示 的 标 签 控 件 用 于 展 示 图 片 的 图 片 控 件, 接 下 来, 本 节 将 针 对 这 两 个 最 简 单 的 控 件 进 行 详 细 讲 解 标 签 控 件 (UILabel) 在 ios 开 发 中, 控 件 标 签 是 使 用 UILabel 类 表 示 的, 它 直 接 继 承 自 UIView 类, 是 一 个 用 于 显 示 文 字 的 静 态 控 件 默 认 情 况 下, 标 签 控 件 是 不 能 接 受 用 户 输 入, 也 不 能 与 用 户 交 互 的 为 了 大 家 更 好 地 理 解 什 么 是 标 签 控 件, 接 下 来, 通 过 一 张 图 来 描 述 标 签 控 件 的 应 用 场 景, 如 图 2-4 所 示 标 签 控 件 UILabel 图 2-4 标 签 控 件 的 应 用 图 2-4 是 一 个 用 户 注 册 的 界 面, 该 图 中 使 用 了 多 个 标 签 控 件 用 于 显 示 固 定 的 文 字 由 此 可 见, 标 签 控 件 的 使 用 是 非 常 频 繁 的 要 想 在 程 序 中 使 用 标 签 控 件, 首 先 得 学 会 创 建 标 签 控 件 创 建 标 签 控 件 最 简 单 的 方 式 就 是 将 对 象 库 中 的 Label 控 件 直 接 拖 拽 到 Main.storyboard 编 辑 界 面 中, 具 体 如 图 2-5 所 示 5
6 图 2-5 将 Label 控 件 拖 拽 到 程 序 界 面 从 图 2-5 中 可 以 看 出, 使 用 拖 拽 控 件 的 方 式 可 以 轻 而 易 举 地 完 成 Label 控 件 的 创 建, 这 时, 选 中 Label 控 件, 在 code 右 侧 会 出 现 UILabel 的 属 性 检 查 器 面 板, 用 于 对 Label 控 件 进 行 设 置, 具 体 如 图 2-6 所 示 图 2-6 UILabel 的 属 性 检 查 器 面 板 6
7 图 2-6 标 识 出 了 UILabel 控 件 的 一 些 属 性 设 置, 这 些 属 性 设 置 均 可 改 变 UILabel 控 件 的 显 示 状 态 同 时, 针 对 属 性 检 查 器 面 板 中 的 设 置,UILabel 还 提 供 了 相 应 的 属 性, 接 下 来, 通 过 一 张 表 来 列 举 UILabel 控 件 的 常 见 属 性, 如 表 2-3 所 示 表 2-3 UILabel 的 常 见 属 性 属 性 声 明 功 能 描 NSString UIFont UIColor *textcolor; 设 置 显 示 的 文 本 内 容, 默 认 为 nil 设 置 字 体 和 字 体 大 小, 默 认 为 系 统 字 体 17 号 设 置 文 本 的 颜 色, 默 认 为 黑 UIColor *shadowcolor; 设 置 文 本 的 阴 影 色 彩 和 透 明 度, 默 认 为 nil 设 置 阴 影 纵 横 向 的 偏 移 量, 默 认 CGSize shadowoffset; CGSizeMake(0, -1), 即 为 顶 部 阴 NSTextAlignment 设 置 文 本 在 标 签 内 部 的 对 齐 方 式, 默 认 为 textalignment; NSTextAlignmentLeft, 即 为 居 左 对 NSLineBreakMode 指 定 换 行 模 式, 模 式 为 枚 举 类 型 NSInteger numberoflines; 指 定 文 本 行 数, 为 0 时 没 有 最 大 行 数 限 制 表 2-3 列 举 了 UILabel 控 件 的 常 见 属 性, 其 中 Text 属 性 支 持 两 种 文 本 设 置 方 式, 分 别 是 Plain 和 Attributed;Font 属 性 用 于 设 置 UILabel 显 示 的 字 体 样 式 及 大 小,shadowOffset 用 于 设 置 控 件 内 的 阴 影 文 本 与 正 常 文 本 之 间 的 偏 移, 该 属 性 需 要 指 定 Horizontal 和 Vertical 两 个 值, 分 别 表 示 阴 影 文 本 与 正 常 文 本 在 水 平 和 垂 直 方 向 的 偏 移 距 为 了 大 家 更 好 地 掌 握 标 签 控 件 的 属 性, 接 下 来, 创 建 一 个 Single View Application 应 用, 命 名 为 01_UILabel, 进 入 viewcontroller.m 文 件, 通 过 纯 粹 的 代 码 方 式 来 创 建 一 个 标 签 控 件, 并 且 使 用 UILabel 提 供 的 属 性 对 标 签 进 行 设 置, 具 体 代 码 如 例 2-1 所 示 例 2-1 ViewController.m 1 #import "ViewController.h" ViewController () ViewController 5 - (void)viewdidload { 6 [super viewdidload]; 7 // 1. 初 始 化 标 签 控 件 8 UILabel *label = [[UILabel alloc] init]; 9 // 2. 设 置 标 签 控 件 的 frame 10 CGFloat labelx = 0; // X 值 为 0 11 CGFloat labely = 210; // Y 值 为 CGFloat labelw = self.view.bounds.size.width; //width 值 为 屏 幕 宽 度 7
8 13 CGFloat labelh = 120; // height 值 为 CGRect frame = CGRectMake(labelX, labely, labelw, labelh); 15 label.frame = frame; 16 // 3. 设 置 背 景 颜 色 为 灰 色 17 label.backgroundcolor = [UIColor lightgraycolor]; 18 // 4. 设 置 字 体 和 字 体 颜 色 19 label.text to itcast 传 智 播 客 "; 20 label.font = [UIFont fontwithname:@"helvetica-bold" size:40]; 21 label.textcolor = [UIColor whitecolor]; 22 // 4. 设 置 对 齐 方 式 为 居 中 23 label.textalignment = NSTextAlignmentCenter; 24 // 5. 设 置 阴 影 25 label.shadowcolor = [UIColor colorwithwhite:0.1f alpha:0.8f]; 26 label.shadowoffset = CGSizeMake(2, 3); 27 // 6. 设 置 换 行 28 label.linebreakmode = NSLineBreakByWordWrapping; 29 label.numberoflines = 2; 30 // 显 示 到 UIView 31 [self.view addsubview:label]; 32 } 程 序 的 运 行 结 果 如 图 2-7 所 示 8
9 图 2-7 运 行 结 果 在 例 2-1 中, 创 建 标 签 控 件 和 设 置 属 性 的 具 体 代 码 都 是 在 viewdidload 方 法 中 实 现 的 这 是 因 为 程 序 的 视 图 控 制 器 完 成 视 图 的 加 载 后, 会 自 动 调 用 viewdidload 方 法 对 子 控 件 views 进 行 进 一 步 的 初 始 化 从 图 2-7 中 可 以 看 出, 程 序 成 功 创 建 了 一 个 特 定 样 式 的 标 签 控 件 图 片 控 件 (UIImageView) 友 好 的 用 户 界 面, 离 不 开 丰 富 的 图 片 图 片 控 件 是 用 UIImageView 类 表 示 的, 它 直 接 继 承 于 UIView 类, 是 一 个 用 于 显 示 图 片 的 静 态 控 件 例 如, 应 用 程 序 的 下 载 界 面, 包 含 了 多 个 图 片 控 件, 具 体 如 图 2-8 所 示 图 2-8 应 用 下 载 界 面 图 2-8 是 一 个 应 用 程 序 下 载 的 界 面, 该 界 面 包 含 了 多 个 图 片 控 件, 这 些 图 片 控 件 都 只 有 展 示 的 功 能, 并 不 能 实 现 与 用 户 的 交 互 功 能 要 想 在 程 序 中 使 用 UIImageView 显 示 图 片, 最 简 单 的 方 式 也 是 直 接 将 对 象 库 中 的 ImageView 拖 拽 到 程 序 界 面 中 当 选 中 该 控 件 后, 在 Xcode 右 侧 会 出 现 UIImageView 的 属 性 检 查 器 面 板, 该 面 板 用 于 修 改 UIImageView 的 显 示 状 态, 具 体 如 图 2-9 所 示 9
10 图 2-9 UIImageView 的 属 性 检 查 器 面 板 在 图 2-9 显 示 的 UIImageView 属 性 器 面 板 中, 其 中,Mode 属 性 是 继 承 与 UIView 的, 该 属 性 可 以 控 制 UIImageView 显 示 图 片 的 缩 放 模 式, 单 击 该 属 性 的 下 拉 列 表, 结 果 如 图 2-10 所 示 图 2-10 Mode 属 性 列 表 框 从 图 2-10 所 示,Mode 属 性 包 含 了 很 多 选 项, 这 些 选 项 所 代 表 的 含 义 如 下 所 示 : Scale To Fill: 不 保 持 纵 横 比 缩 放 图 片, 使 图 片 完 全 适 应 该 UIImageView 控 件 Aspect Fit: 保 持 纵 横 比 缩 放 图 片, 使 图 片 的 长 边 能 完 全 显 示, 即 可 以 完 整 地 展 示 图 片 Aspect Fill: 保 持 纵 横 比 缩 放 图 片, 只 能 保 证 图 片 的 短 边 能 完 成 显 示 出 来, 即 图 片 只 能 在 水 平 或 者 垂 直 方 向 是 完 整 的, 另 一 个 方 向 会 发 生 截 取 Center: 不 缩 放 图 片, 只 显 示 图 片 的 中 间 区 域 Top: 不 缩 放 图 片, 只 显 示 图 片 的 顶 部 区 域 Bottom: 不 缩 放 图 片, 只 显 示 图 片 的 底 部 区 域 Left: 不 缩 放 图 片, 只 显 示 图 片 的 左 边 区 域 Right: 不 缩 放 图 片, 只 显 示 图 片 的 右 边 区 域 Top Left: 不 缩 放 图 片, 只 显 示 图 片 的 左 上 边 区 域 Top Right: 不 缩 放 图 片, 只 显 示 图 片 的 右 上 边 区 域 Bottom Left: 不 缩 放 图 片, 只 显 示 图 片 的 左 下 边 区 域 Bottom Right: 不 缩 放 图 片, 只 显 示 图 片 的 右 下 边 区 域 针 对 UIImageView 属 性 检 查 器 面 板 中 的 设 置,UIImageView 类 也 定 义 了 相 应 的 属 性, 接 下 来, 通 过 一 张 表 来 列 举 UIImageView 的 常 见 属 性, 如 表 2-4 所 示 10
11 表 2-4 属 性 声 明 UIImageView 的 常 见 属 性 功 能 描 UIImage *image; 访 问 或 设 置 控 件 显 示 的 图 UIImage *highlightedimage; 设 置 高 亮 状 态 下 显 示 的 图 = isuserinteractionenabled) BOOL 设 置 是 否 允 许 用 户 交 互, 默 认 不 允 许 userinteractionenabled; 用 户 交 BOOL highlighted; 设 置 是 否 高 亮 状 态, 默 认 为 普 通 状 NSArray *animationimages; 设 置 序 列 帧 动 画 的 图 片 数 NSArray 设 置 高 亮 状 态 下 序 列 帧 动 画 的 图 片 *highlightedanimationimages; 数 NSTimeInterval animationduration; 设 置 序 列 帧 动 画 播 放 的 时 NSInteger animationrepeatcount; 设 置 序 列 帧 动 画 播 放 的 次 数 表 2-4 列 举 了 UIImageView 常 见 的 属 性, 其 中, 前 四 个 属 性 是 用 来 设 置 图 片 状 态 的, 后 四 个 属 性 是 用 来 设 置 图 片 动 画 的 这 些 属 性 都 是 操 作 UIImageView 最 常 用 到 的, 在 后 面 的 小 节 中, 将 针 对 这 些 属 性 的 使 用 进 行 详 细 讲 解 由 于 UIImageView 可 以 实 现 序 列 帧 动 画 显 示 一 组 图 片, 因 此,UIImageView 除 了 提 供 实 现 动 画 的 相 关 属 性 外, 还 提 供 了 实 现 序 列 帧 动 画 的 相 关 方 法, 接 下 来, 通 过 一 张 表 来 列 举 UIImageView 关 于 序 列 帧 动 画 播 放 的 相 关 方 法, 具 体 如 表 2-5 所 示 表 2-5 UIImageView 用 于 播 放 帧 动 画 的 相 关 方 法 方 法 声 明 功 能 描 述 - (void)startanimating; 开 始 播 放 动 画 - (void)stopanimating; 停 止 播 放 动 画 - (BOOL)isAnimating; 判 断 是 否 正 在 播 放 动 画 表 2-5 中 列 举 了 三 个 方 法, 这 三 个 方 法 都 是 用 来 控 制 动 画 播 放 状 态 的 实 战 演 练 会 喝 牛 奶 的 汤 姆 猫 相 信 大 家 都 知 道 一 个 比 较 好 玩 的 应 用 叫 会 说 话 的 汤 姆 猫, 该 应 用 中 的 汤 姆 猫 不 仅 可 以 模 仿 人 说 话, 还 可 以 指 挥 汤 姆 猫 进 行 各 种 动 作, 比 如 喝 牛 奶 挠 抓 屏 幕 挨 打 等 动 作 其 实, 这 些 动 作 都 是 一 系 列 图 片 的 动 画 效 果, 接 下 来, 我 们 以 喝 牛 奶 为 例, 带 领 大 家 使 用 图 片 控 件 来 开 发 一 个 会 喝 牛 奶 的 汤 姆 猫, 具 体 步 骤 如 下 : 1. 界 面 设 计 11
12 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 02_UIImageView, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIImageView 控 件 和 一 个 UIButton 控 件, 其 中,UIImageView 控 件 用 于 显 示 汤 姆 猫, UIButton 控 件 用 于 显 示 牛 奶 瓶 (2) 将 提 前 准 备 好 的 图 片 分 别 放 到 Supporting Files 和 Images.xcassets 文 件 中, 并 为 UIImageView 控 件 和 UIButton 控 件 设 置 背 景 图 片, 设 计 好 的 界 面 如 图 2-11 所 示 图 2-11 喝 牛 奶 的 汤 姆 猫 界 面 2. 创 建 控 件 对 象 的 关 联 (1) 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 选 中 UIButton 控 件, 添 加 一 个 点 击 事 件, 命 名 为 drink, 具 体 如 图 2-12 所 示 图 2-12 创 建 UIButton 控 件 对 象 的 关 联 (2) 同 样 的 方 式, 选 中 UIImageView 控 件, 添 加 一 个 表 示 汤 姆 猫 的 对 象, 命 名 为 tom, 具 体 如 图 2-13 所 示 12
13 图 2-13 创 建 UIImageView 对 象 的 关 联 3. 通 过 代 码 实 现 汤 姆 猫 喝 牛 奶 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 汤 姆 猫 喝 牛 奶 的 功 能 了 进 入 ViewController.m 文 件, 在 drink 方 法 中 加 载 图 片, 并 且 设 置 喝 牛 奶 的 一 系 列 动 画, 具 体 代 码 如 例 2-2 所 示 例 2-2 ViewController.m 1 #import "ViewController.h" ViewController () 3 // 声 明 一 个 表 示 汤 姆 猫 的 属 性 tom (weak, nonatomic) IBOutlet UIImageView *tom; 5 // 声 明 一 个 喝 牛 奶 的 方 法 drink 6 - (IBAction)drink:(id)sender; ViewController 9 - (void)viewdidload { 10 [super viewdidload]; 11 // Do any additional setup after loading the view, typically from a nib. 12 } 13 - (IBAction)drink:(id)sender { 14 // 1. 加 载 所 有 的 动 画 图 片 15 NSMutableArray *images=[nsmutablearray array]; 16 for(int i=0;i<81;i++){ 17 // 计 算 文 件 名 18 NSString *filename=[nsstring stringwithformat:@"drink_%02d.jpg",i]; 19 // 加 载 图 片 20 UIImage *image=[uiimage imagenamed:filename]; 13
14 21 // 添 加 图 片 到 数 组 中 22 [images addobject:image]; 23 } 24 self.tom.animationimages=images; 25 //2. 设 置 播 放 次 数 (1 次 ) 26 self.tom.animationrepeatcount=1; 27 // 3. 设 置 播 放 时 间 28 self.tom.animationduration=8; 29 // 4. 开 始 播 放 动 画 30 [self.tom startanimating]; 31 } 在 例 2-2 中, 第 15 行 代 码 创 建 了 一 个 数 组, 用 于 存 放 一 系 列 动 画 图 片, 第 16~23 行 代 码 用 于 将 存 放 在 指 定 目 录 想 的 图 片 添 加 到 数 组 中, 第 24 行 代 码 用 于 设 置 动 画 图 片, 第 26~28 行 代 码 用 于 设 置 动 画 播 放 的 次 数 及 其 持 续 时 间, 第 30 行 代 码 用 于 播 放 动 画 4. 在 模 拟 器 上 运 行 程 序 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后, 点 击 喝 牛 奶 的 图 标, 一 个 会 喝 牛 奶 的 汤 姆 猫 应 用 成 功 开 发 完 成 了 汤 姆 猫 喝 牛 奶 的 部 分 场 景 如 图 2-14 所 示 图 2-14 会 喝 牛 奶 的 汤 姆 猫 注 意 : PNG 格 式 的 图 片 资 源, 可 以 直 接 放 到 Images.xcassets 文 件 和 Supporting Files 文 件 下 ; 而 JPEG 格 式 的 图 片 资 源, 只 能 放 到 Supporting Files 文 件 下 14
15 2.3 按 钮 控 件 (UIButton) 按 钮 控 件 概 述 按 钮 控 件 是 最 常 用 的 控 件 之 一, 通 常 情 况 下, 点 击 某 个 控 件 后, 会 做 出 相 应 反 应 的 都 是 按 钮 控 件 在 ios 开 发 中, 按 钮 控 件 使 用 UIButton 表 示 的, 它 直 接 继 承 自 UIControl:UIView, 是 一 个 既 能 显 示 文 字, 又 能 显 示 图 片, 还 能 随 时 调 整 内 部 图 片 和 文 字 位 置 的 按 钮 例 如, 播 放 器 界 面 有 很 多 按 钮 控 件, 具 体 如 图 2-15 所 示 图 2-15 播 放 器 界 面 中 的 按 钮 图 2-15 展 示 的 是 播 放 器 界 面 中 的 一 部 分, 这 部 分 包 含 了 5 个 按 钮 控 件, 这 些 控 件 都 是 可 点 击 的, 并 且 点 击 这 些 按 钮 控 件 后, 会 做 出 不 同 的 反 应 同 标 签 控 件 图 片 控 件 一 样, 创 建 按 钮 控 件 最 简 单 的 方 式, 也 是 通 过 拖 拽 控 件 的 方 式 来 完 成 进 入 对 象 库, 选 中 Button 控 件, 在 code 右 侧 会 出 现 UIButton 的 属 性 检 查 器 面 板, 具 体 如 图 2-16 所 示 15
16 图 2-16 UIButton 的 属 性 检 查 器 面 板 图 2-16 展 示 的 是 UIButton 所 支 持 的 一 些 属 性, 其 中,Type 和 State Config 属 性 比 较 难 理 解, 接 下 来, 针 对 这 两 个 属 性 进 行 详 细 讲 解, 具 体 如 下 : 1. Type 该 属 性 用 于 设 置 按 钮 的 类 型, 它 支 持 多 个 选 项, 单 击 Type 下 拉 列 表, 如 图 2-11 所 示 图 2-17 按 钮 控 件 的 Type 属 性 从 图 2-17 中 可 以 看 出, 按 钮 控 件 的 Type 属 性 有 6 个 选 项, 这 6 个 选 项 表 示 的 含 义 如 下 所 示 : Custom: 该 选 项 表 示 按 钮 控 件 是 开 发 者 自 己 定 义 的, 是 最 常 被 选 用 的 Type 类 型 System: 该 选 项 是 ios 默 认 的 按 钮 风 格 Detail Disclosure: 该 按 钮 通 常 用 于 显 示 当 前 列 表 项 的 详 情, 最 新 发 布 的 ios8 中 显 示 图 标 Info Light: 显 示 图 标 的 图 形 按 钮, 该 按 钮 通 常 用 于 显 示 简 短 的 说 明 信 息 16
17 Info Dark: 显 示 图 标 的 图 形 按 钮, 该 按 钮 通 常 用 于 显 示 简 短 的 说 明 信 息 Add Contact: 显 示 图 标 的 图 形 按 钮, 该 按 钮 通 常 用 于 显 示 添 加 联 系 人 2.State Config 该 属 性 用 于 配 置 该 按 钮 的 状 态, 它 支 持 多 个 选 项, 单 击 State Config 下 拉 列 表, 如 图 2-18 所 示 图 2-18 按 钮 控 件 的 State Config 属 性 从 图 2-18 中 可 以 看 出, 按 钮 控 件 的 State Config 属 性 有 4 个 选 项, 这 4 个 选 项 表 示 的 含 义 如 下 所 示 : Default: 这 是 按 钮 默 认 的 状 态 Highlighted: 当 用 户 触 碰 该 按 钮 时, 该 按 钮 显 示 高 亮 状 态 Selected: 表 示 按 钮 被 选 中 的 状 态 Disabled: 表 示 按 钮 被 禁 用 后 的 状 态 针 对 UIButton 属 性 检 查 器 面 板 中 的 设 置,UIButton 类 也 定 义 了 相 应 的 属 性, 接 下 来, 通 过 一 张 表 来 列 举 UIButton 的 常 见 属 性, 如 表 2-6 所 示. 表 2-6 UIButton 类 的 常 见 属 性 属 性 声 明 功 能 描 UIButtonType buttontype; 用 于 设 置 按 钮 控 件 的 类 UILabel *titlelabel; 用 于 设 置 按 钮 控 件 显 示 的 文 UIImageView *imageview; 用 于 显 示 按 钮 控 件 的 图 片 除 此 之 外,UIButton 类 还 提 供 了 许 多 可 以 设 置 UIButton 外 观 的 方 法, 这 些 方 法 都 比 较 常 用, 表 2-7 列 举 了 UIButton 提 供 的 常 见 方 法 表 2-7 UIButton 类 的 常 见 方 法 方 法 声 明 功 能 描 述 - (void)settitle:(nsstring *)title forstate:(uicontrolstate)state; 用 于 设 置 按 钮 的 文 本 和 状 态 - (void)settitlecolor:(uicolor *)color forstate:(uicontrolstate)state; 用 于 设 置 按 钮 的 标 题 颜 色 和 状 态 - (void)setbackgroundimage:(uiimage *)image 用 于 设 置 按 钮 的 背 景 图 片 和 状 态 17
18 forstate:(uicontrolstate)state; - (void)setimage:(uiimage *)image 用 于 设 置 按 钮 的 图 片 和 状 态 forstate:(uicontrolstate)state; 表 2-7 列 举 的 方 法 中 都 需 要 指 定 一 个 forstate 参 数, 该 参 数 是 一 个 UIControlState 整 数 值, 用 于 接 收 UIControlStateNormal UIControlStateHighlighted UIControlStateDisabled UIControlStateSelected 等 状 态 的 值, 该 四 个 状 态 所 代 表 的 值, 刚 好 是 图 2-12 所 列 出 的 四 种 状 态 实 战 演 练 使 用 按 钮 移 动 旋 转 缩 放 图 片 UIButton 作 为 ios 开 发 中 最 常 用 的 控 件 之 一, 它 主 要 用 于 响 应 用 户 在 界 面 中 触 发 的 事 件 为 了 帮 助 大 家 熟 练 掌 握 UIButton 的 使 用, 接 下 来, 带 领 大 家 使 用 按 钮 控 件 来 控 制 图 片 的 移 动 旋 转 和 缩 放, 具 体 步 骤 如 下 : 1. 界 面 设 计 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 03_UIButton, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIImageView 控 件 和 八 个 UIButton 控 件, 其 中,UIImageView 控 件 用 于 显 示 要 操 作 的 图 片,UIButton 控 件 用 于 控 制 图 片 的 上 下 左 右 移 动 左 右 旋 转 和 放 大 缩 小 (2) 将 提 前 准 备 好 的 图 片 放 到 Supporting Files 文 件 中, 并 为 UIImageView 控 件 和 UIButton 控 件 设 置 背 景 图 片 设 计 好 的 界 面 如 图 2-19 所 示 图 2-19 按 钮 操 作 图 片 的 界 面 在 图 2-19 中, 上 移 下 移 左 移 右 移 的 操 作, 分 别 和 图 中 箭 头 的 方 向 对 应, 左 旋 右 旋 和 放 大 缩 小 也 一 样 需 要 注 意 的 是, 为 了 区 分 移 动 旋 转 缩 放 的 不 同 按 钮, 我 们 需 要 为 每 个 按 钮 设 置 一 个 Tag 属 性, 这 里, 我 们 为 上 移 下 移 左 移 右 移 左 旋 转 右 旋 转 放 大 缩 小 设 置 的 Tag 属 性 为 创 建 控 件 对 象 的 关 联 (1) 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 为 具 备 移 动 操 作 的 四 个 UIButton 控 件, 添 加 同 一 个 点 击 事 件, 命 名 为 run, 具 体 如 图 2-20 所 示 18
19 图 2-20 创 建 移 动 按 钮 对 象 的 关 联 (2) 同 样 的 方 式, 为 旋 转 按 钮 缩 放 按 钮 添 加 相 应 的 事 件, 分 别 命 名 为 rotate 和 scale, 为 UIImageView 添 加 属 性, 命 名 为 img, 添 加 完 成 后 的 界 面 如 图 2-21 所 示 图 2-21 完 成 控 件 对 象 关 联 后 的 界 面 从 图 2-21 中 可 以 看 出, 完 成 控 件 对 象 的 关 联 后, 在 ViewController.m 文 件 中 会 自 动 生 成 控 件 对 象 对 应 属 性 和 方 法 的 声 明 3. 通 过 代 码 实 现 图 片 的 移 动 旋 转 缩 放 功 能 19
20 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 按 钮 移 动 旋 转 缩 放 图 片 的 功 能 了 进 入 ViewController.m 文 件, 通 过 代 码 对 不 同 的 方 法 进 行 实 现, 具 体 代 码 如 例 2-3 所 示 例 2-3 ViewController.m 1 #import "ViewController.h" ViewController () 3 // 声 明 一 个 表 示 图 片 的 属 性 img (weak, nonatomic) IBOutlet UIImageView *img; 5 - (IBAction)scale:(id)sender; // 声 明 缩 放 图 片 的 方 法 6 - (IBAction)rotate:(id)sender;// 声 明 旋 转 图 片 的 方 法 7 - (IBAction)run:(id)sender; // 声 明 移 动 图 片 的 方 法 ViewController 10 - (void)viewdidload { 11 [super viewdidload]; 12 } 13 // 用 于 缩 放 图 片 的 方 法 14 - (IBAction)scale:(id)sender { 15 // 获 取 图 片 的 transform 属 性 16 CGAffineTransform t=self.img.transform; 17 // 获 取 图 片 的 tag 属 性 18 NSInteger tag = [sender tag]; 19 if (tag==7) { 20 CGAffineTransform temtransform =CGAffineTransformScale(t, 1.2,1.2); 21 self.img.transform = temtransform; 22 }else{ 23 CGAffineTransform temtransform = CGAffineTransformScale(t, 0.8,0.8); 24 self.img.transform=temtransform; 25 } 26 } 27 // 用 于 旋 转 图 片 的 方 法 28 - (IBAction)rotate:(id)sender { 29 // 获 取 图 片 的 transform 属 性 30 CGAffineTransform temtransform=self.img.transform; 31 // 获 取 按 钮 的 tag 属 性 32 NSInteger rotatetag=[sender tag]; 33 if (rotatetag==5) { 34 self.img.transform=cgaffinetransformrotate(temtransform,m_pi_4 * -1); 35 }else{ 20
21 36 self.img.transform = CGAffineTransformRotate(temtransform,M_PI_4 * 1); 37 } 38 } 39 // 用 于 移 动 图 片 的 方 法 40 - (IBAction)run:(id)sender { 41 // 获 取 图 片 的 frame 属 性 42 CGRect tmpframe = self.img.frame; 43 // 获 取 按 钮 的 tag 属 性 44 NSInteger runtag=[sender tag]; 45 switch (runtag) { 46 case 1: // 向 上 移 动 47 tmpframe.origin.y-=10; 48 self.img.frame=tmpframe; 49 break; 50 case 2: // 向 下 移 动 51 tmpframe.origin.y+=10; 52 self.img.frame=tmpframe; 53 break; 54 case 3: // 向 左 移 动 55 tmpframe.origin.x-=10; 56 self.img.frame=tmpframe; 57 break; 58 case 4: // 向 右 移 动 59 tmpframe.origin.x+=10; 60 self.img.frame=tmpframe; 61 break; 62 default: 63 break; 64 } 65 } 在 例 2-3 中, 使 用 按 钮 对 图 片 进 行 各 种 操 作 时, 首 先 都 是 获 取 图 片 对 象 的 相 关 属 性, 然 后 根 据 图 片 对 象 的 Tag 属 性, 执 行 不 同 的 动 作 以 run 方 法 为 例, 该 方 法 用 于 实 现 图 片 的 移 动 操 作, 第 41~44 行 代 码 分 别 获 取 了 图 片 的 frame 和 按 钮 的 tag 属 性, 第 45~65 行 代 码 使 用 switch 语 句, 根 据 按 钮 的 tag 属 性, 判 断 按 钮 移 动 的 方 向, 并 对 frame 属 性 的 坐 标 位 置 进 行 修 改, 从 而 实 现 图 片 的 移 动 4. 在 模 拟 器 上 运 行 程 序 21
22 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后, 点 击 不 同 的 按 钮 操 作 图 片, 发 现 图 片 可 以 实 现 移 动 旋 转 和 缩 放 了 使 用 按 钮 对 图 片 进 行 移 动 旋 转 缩 放 后 的 部 分 图 片 如 图 2-22 所 示 图 2-22 使 用 按 钮 移 动 旋 转 缩 放 图 片 2.4 文 本 框 控 件 和 文 本 控 件 在 ios 开 发 中, 经 常 需 要 一 些 现 实 文 字 的 控 件, 虽 然 UILabel 标 签 可 以 实 现 文 字 的 展 示, 但 它 不 能 和 用 户 进 行 交 互, 为 此,UIKit 框 架 提 供 了 UITextField 和 UITextView 文 本 控 件, 接 下 来, 本 节 将 针 对 这 两 个 控 件 进 行 详 细 地 讲 解 文 本 框 控 件 (UITextField) 在 ios 开 发 中, 文 本 框 控 件 使 用 UITextField 来 表 示, 它 和 UIButton 控 件 一 样, 都 直 接 继 承 自 UIControl 控 件, 并 且 可 以 和 用 户 进 行 交 互 为 了 帮 助 大 家 更 好 地 理 解 什 么 是 文 本 框 控 件, 接 下 来, 通 过 新 浪 微 博 登 录 的 界 面 来 展 示 UITextField 的 使 用 场 景, 如 图 2-23 所 示 22
23 图 2-23 新 浪 微 博 登 录 界 面 图 2-23 显 示 的 是 一 个 新 浪 微 博 的 登 录 界 面, 该 界 面 中 的 用 户 名 和 密 码 输 入 框 都 是 使 用 文 本 框 控 件 UITextField 控 件 实 现 的 由 此 可 见,UITextField 控 件 不 仅 可 以 显 示, 同 时 可 供 用 户 输 入 或 者 编 辑 文 本 要 想 在 程 序 中 使 用 UITextField, 首 先 得 学 会 创 建 UITextField 同 样 从 对 象 库 中 找 到 Text Field, 将 其 拖 拽 到 Main.storyboard 编 辑 界 面 中, 这 样 就 轻 而 易 举 地 创 建 了 一 个 文 本 输 入 框 选 中 Text Field 控 件,Xcode 右 侧 出 现 了 UITextField 的 属 性 检 查 器 面 板, 该 面 板 用 于 设 置 UITextField 的 相 关 属 性, 具 体 如 图 2-24 所 示 23
24 图 2-24 UITextField 的 属 性 检 测 器 面 板 图 2-24 显 示 的 是 UITextField 所 支 持 的 一 些 属 性, 通 过 设 置 这 些 属 性, 可 以 使 文 本 框 的 状 态 发 生 相 应 的 变 化 接 下 来, 针 对 Clear Button 属 性 和 Keyboard Type 属 性 进 行 详 细 讲 解 1. Clear Button Clear Button 用 于 控 制 何 时 显 示 清 除 按 钮, 选 中 文 本 框 控 件, 单 击 该 属 性 的 下 拉 列 表, 结 果 如 图 2-25 所 示 图 2-25 Clear Button 属 性 支 持 的 选 项 图 2-25 展 示 的 是 UITextField 控 件 的 Clear Button 属 性 选 项, 这 些 选 项 所 代 表 的 含 义 如 下 所 示 : Never appears: 从 不 显 示 清 除 按 钮 Appears while editing: 当 编 辑 内 容 时 显 示 清 除 按 钮 Appears uniess editing: 除 了 编 辑 之 外, 都 会 显 示 清 除 按 钮 Is always visible: 清 除 按 钮 一 直 可 见 2. Keyboard Type Keyboard Type 用 于 设 置 文 本 框 关 联 的 键 盘 类 型, 选 中 文 本 框 控 件, 单 击 该 属 性 的 下 拉 列 表, 结 果 如 图 2-26 所 示 24
25 图 2-26 Keyboard Type 属 性 支 持 的 选 项 图 2-26 显 示 的 是 Keyboard Type 属 性 所 支 持 的 选 项, 这 些 选 项 所 代 表 的 含 义 如 下 所 示 : Default: 显 示 默 认 的 虚 拟 键 盘 ASCII Capable: 显 示 英 文 字 母 键 盘 Numbers and Punctuation: 显 示 数 字 和 标 点 符 号 键 盘 Number Pad: 显 示 数 字 键 盘 Phone Pad: 显 示 电 话 拨 号 键 盘 Address: 显 示 输 入 地 址 的 虚 拟 键 盘 Decimal Pad: 显 示 可 输 入 数 字 和 小 数 点 的 虚 拟 键 盘 针 对 UITextField 属 性 检 查 器 面 板 设 置 的 属 性,UITextField 类 也 定 义 了 与 之 对 应 的 属 性, 接 下 来 通 过 一 张 表 来 列 举 UITextField 的 常 见 属 性, 如 表 2-8 所 示 表 2-8 UITextField 的 常 见 属 性 属 性 声 明 功 能 描 UIControlContentVerticalAlignment 设 置 文 本 框 内 文 本 的 垂 直 对 齐 方 式 NSString *placeholder; 设 置 文 本 框 未 输 入 文 本 时 的 提 示 信 UITextBorderStyle borderstyle; 设 置 文 本 框 边 框 的 样 式 25
26 @property(nonatomic) UITextFieldViewMode clearbuttonmode; 设 置 文 本 框 是 否 显 示 清 除 按 BOOL securetextentry; 设 置 文 本 框 输 入 的 字 符 是 否 密 文 显 UITextAutocorrectionType autocorrectiontype; 设 置 是 否 自 动 更 正 文 本 框 内 的 文 本 内 BOOL clearsonbeginediting; 再 次 编 辑 时 是 否 清 空 之 前 的 文 本 内 BOOL adjustsfontsizetofitwidth; 设 置 文 本 内 容 是 否 适 应 文 本 框 窗 口 大 设 置 文 本 框 内 文 本 内 容 首 字 母 是 否 为 UITextAutocapitalizationType 大 写 BOOL editing; 设 置 文 本 框 内 文 本 内 容 是 否 允 许 编 id<uitextfielddelegate> delegate; 设 置 代 UIKeyboardType keyboardtype; 设 置 文 本 框 关 联 的 键 盘 类 UIKeyboardAppearance keyboardappearance; 设 置 文 本 框 关 联 键 盘 的 外 观 样 UIReturnKeyType returnkeytype; 设 置 文 本 框 关 联 键 盘 的 回 车 键 类 UIView *leftview; 设 置 文 本 框 左 侧 视 UITextFieldViewMode leftviewmode; 设 置 文 本 框 左 视 图 的 显 示 方 UIView *rightview; 设 置 文 本 框 右 侧 视 UITextFieldViewMode rightviewmode; 设 置 文 本 框 右 视 图 的 显 示 方 式 表 2-7 列 举 出 了 UITextField 的 常 见 属 性, 其 中 delegate 为 代 理 属 性, 如 果 一 个 对 象 要 想 监 听 文 本 框 的 动 态, 例 如 限 制 文 本 框 输 入 内 容 的 个 数, 该 对 象 可 以 成 为 文 本 框 的 代 理 来 实 现 监 听, 但 是 前 提 是 要 遵 守 UITextFieldDelegate 协 议, 该 协 议 的 定 义 方 式 如 下 所 示 UITextFieldDelegate // 文 本 框 是 否 可 以 进 入 编 辑 模 式 ( 是 否 可 进 入 输 入 状 态 ) - (BOOL)ç:(UITextField *)textfield; // 文 本 框 进 入 编 辑 模 式 26
27 - (void)textfielddidbeginediting:(uitextfield *)textfield; // 是 否 退 出 编 辑 模 式 ( 是 否 可 结 束 输 入 状 态 ) - (BOOL)textFieldShouldEndEditing:(UITextField *)textfield; // 退 出 编 辑 模 式 ( 结 束 输 入 状 态 ) - (void)textfielddidendediting:(uitextfield *)textfield; // 当 输 入 任 何 字 符 时, 代 理 调 用 该 方 法 -(BOOL)textField:(UITextField *)textfield shouldchangecharactersinrange: (NSRange)range replacementstring:(nsstring *)string; // 是 否 可 以 点 击 清 除 按 钮 - (BOOL)textFieldShouldClear:(UITextField *)textfield; // 点 击 键 盘 上 的 return 按 钮 时 调 用 - (BOOL)textFieldShouldReturn:(UITextField 从 上 述 代 码 中 可 以 看 出,UITextFieldDelegate 协 议 中 定 义 了 许 多 供 代 理 监 听 的 方 法, 这 些 方 法 会 在 文 本 框 的 不 同 状 态 下 被 调 用 例 如,textFieldShouldReturn 方 法 是 点 击 键 盘 上 的 return 键 按 钮 时 调 用 的 方 法, 该 方 法 可 以 实 现 单 击 return 键 后 所 执 行 的 行 为 实 战 演 练 用 户 登 录 传 智 播 客 UITextField 作 为 用 户 输 入 文 本 的 控 件 之 一, 它 经 常 会 运 用 在 一 些 用 户 的 登 录 界 面, 例 如, 新 浪 微 博 的 登 录 界 面, 用 户 名 和 密 码 的 文 本 输 入 框 就 是 使 用 UITextField 实 现 的 为 了 帮 助 大 家 更 好 地 学 习 UITextField 的 使 用, 接 下 来, 带 领 大 家 开 发 一 个 用 户 登 录 传 智 播 客 的 案 例, 具 体 步 骤 如 下 : 1. 界 面 设 计 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 04_UITextField, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIImageView 控 件 两 个 UITextField 控 件 和 一 个 UIButton 控 件, 其 中,UIImageView 控 件 用 于 显 示 Logo 图 片,UITextField 控 件 用 于 输 入 用 户 登 录 的 用 户 名 和 密 码,UIButton 控 件 用 于 用 户 的 登 录 (2) 将 提 前 准 备 好 的 图 片 放 到 Supporting Files 文 件 中, 并 为 UIImageView 控 件 和 UIButton 控 件 设 置 背 景 图 片 为 了 确 保 密 码 的 安 全, 通 常 情 况 下, 我 们 都 会 将 密 码 设 置 为 密 文 显 示, 即 用 于 输 入 密 码 的 UITextField 控 件 中 的 Secure Text Entry 属 性 勾 选 上 设 计 好 的 界 面 如 图 2-27 所 示 27
28 图 2-27 用 户 登 录 的 界 面 2. 创 建 控 件 对 象 的 关 联 (1) 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 为 UITextField 控 件 添 加 用 于 表 示 用 户 名 和 密 码 的 属 性, 分 别 命 名 username 和 password, 创 建 好 的 界 面 如 图 2-28 所 示 图 2-28 为 UITextField 控 件 添 加 属 性 (2) 同 样 的 方 式, 为 登 录 按 钮 添 加 一 个 事 件, 命 名 为 login, 添 加 完 成 后 的 界 面 如 图 2-29 所 示 28
29 图 2-29 为 UIButton 控 件 添 加 用 于 点 击 的 方 法 3. 通 过 代 码 实 现 用 户 登 录 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 用 户 登 录 的 功 能 了 为 了 演 示 用 户 登 录 的 功 能, 我 们 假 设 有 一 个 用 户 名 为 itcast, 密 码 为 的 用 户 使 用 代 码 实 现 用 户 登 录 功 能 的 代 码 如 例 2-4 所 示 例 2-4 viewcontroller.m 1 #import "ViewController.h" ViewController () 3 - (IBAction)login:(id)sender;// 用 于 声 明 UIButton 按 钮 的 点 击 事 件 4 // 用 于 声 明 两 个 UITextField 控 件 所 对 应 的 属 性 (weak, nonatomic) IBOutlet UITextField *password; (weak, nonatomic) IBOutlet UITextField *username; ViewController 9 - (void)viewdidload { 10 [super viewdidload]; 11 } 12 - (IBAction)login:(id)sender { 13 // 获 取 用 户 名 14 NSString *username=self.username.text; 15 // 获 取 密 码 16 NSString *password=self.password.text; 17 // 判 断 用 户 名 和 密 码 是 否 正 确 18 if ([username isequaltostring:@""] [password isequaltostring:@""]) { 19 [self showmessage:@" 用 户 名 或 密 码 不 能 为 空 "]; 29
30 20 }else if(![password 21![username 22 [self 用 户 名 或 密 码 错 误 "]; 23 }else if([username 24 [password 25 [self 登 录 成 功 "]; 26 } 27 } 28 // 提 示 信 息 的 方 法 29 -(void)showmessage:(nsstring *) message{ 30 UIAlertView *alert=[[uialertview alloc] initwithtitle:nil message: 31 message delegate:nil cancelbuttontitle:@" 确 定 " 32 otherbuttontitles:nil,nil]; 33 [alert show]; 34 } 在 例 2-4 中, 第 83~93 行 代 码 用 于 对 用 户 名 和 密 码 进 行 判 断, 并 且 调 用 了 showmessage 方 法 显 示 登 录 的 结 果,showMessage 方 法 是 程 序 第 95~100 行 代 码 定 义 的 一 个 方 法, 该 方 法 首 先 创 建 了 一 个 UIAlertView, 并 在 创 建 该 对 象 时 指 定 了 警 告 框 的 标 题 消 息 内 容 以 及 警 告 框 包 含 的 按 钮 信 息, 然 后 调 用 show 方 法, 将 创 建 的 UIAlertView 对 象 显 示 出 来 4. 在 模 拟 器 上 运 行 程 序 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后, 在 文 本 框 中 输 入 用 户 名 和 密 码, 点 击 登 录 按 钮, 这 时, 不 管 用 户 名 和 密 码 输 入 的 是 否 正 确, 都 会 弹 出 一 个 对 应 的 提 示 框, 具 体 效 果 如 图 2-30 所 示 图 2-30 用 户 登 录 的 运 行 结 果 30
31 2.4.3 多 行 文 本 控 件 (UITextView) 在 ios 应 用 中, 经 常 需 要 输 入 多 行 文 本, 这 时, 需 要 使 用 UITextView 控 件 实 现 与 UITextField 控 件 相 比,UITextView 继 承 自 UIScrollView:UIView 类, 它 不 仅 可 以 输 入 并 显 示 文 本, 而 且 可 以 在 固 定 的 区 域 展 示 足 够 多 的 文 本, 并 且 这 些 文 本 内 容 可 以 换 行 显 示 为 了 帮 助 大 家 更 好 地 理 解 什 么 是 UITextView, 接 下 来, 通 过 一 张 发 表 微 博 的 图 片 来 展 示 UITextView 的 应 用 场 景, 具 体 如 图 2-31 所 示 图 2-31 UITextView 的 使 用 场 景 图 2-31 是 发 送 微 博 的 界 面, 其 中, 发 表 微 博 内 容 的 区 域 是 一 个 可 以 滚 动 显 示 的 文 本 框, 它 是 由 一 个 多 行 文 本 控 件 实 现 的 通 常 情 况 下, 多 行 文 本 控 件 也 称 为 文 本 视 图 同 样, 在 学 习 UITextView 控 件 之 前, 先 来 看 一 下 UITextView 控 件 所 支 持 的 属 性 从 对 象 库 中 将 Text View 直 接 拖 拽 到 Main.storyboard 编 辑 界 面 并 选 中, 在 Xcode 右 侧 会 出 现 了 UITextView 的 属 性 检 查 器 面 板, 具 体 如 图 2-32 所 示 31
32 图 2-32 UITextView 的 属 性 检 测 器 面 板 图 2-32 标 识 出 了 UITextView 常 见 属 性 的 设 置, 这 些 属 性 所 代 表 的 含 义 比 较 简 单, 大 家 可 以 通 过 修 改 属 性 的 设 置, 体 会 这 些 属 性 对 UITextView 所 起 的 作 用 除 了 可 以 在 属 性 检 查 器 面 板 中 设 置 属 性 外, 还 可 以 使 用 UITextView 类 提 供 的 属 性 来 进 行 设 置, 接 下 来, 通 过 一 张 表 来 列 举 UITextView 的 常 见 属 性, 具 体 如 表 2-9 所 示 表 2-9 UITextView 的 常 见 属 性 属 性 声 明 功 能 描 设 置 代 理 id<uitextviewdelegate> BOOL 设 置 文 本 视 图 是 否 可 编 辑 BOOL 设 置 文 本 视 图 是 否 可 选 择 selectable; 设 置 文 本 视 图 输 入 时 是 否 清 除 之 BOOL clearsoninsertion; 的 文 NSAttributedString 设 置 文 本 视 图 默 认 插 入 的 文 字 内 容 (readwrite, retain) UIView (readwrite, retain) UIView UIViewAutoresizing autoresizingmask; 设 置 底 部 弹 出 的 视 图 设 置 底 部 弹 出 视 图 上 方 的 辅 助 视 图 设 置 文 本 视 图 自 动 适 应 高 度 32
33 表 2-8 列 举 了 UITextView 的 常 见 属 性, 其 中 delegate 为 代 理 属 性, 文 本 视 图 的 事 件 交 由 委 托 代 理 对 象 处 理, 实 现 对 文 本 视 图 的 监 听, 但 是 前 提 要 遵 守 UITextViewDelegate 协 议, 该 协 议 的 定 义 方 式 如 下 所 示 UITextViewDelegate <NSObject, // 用 户 将 要 开 始 编 辑 UITextView 的 内 容 时 会 激 发 该 方 法 - (BOOL)textViewShouldBeginEditing:(UITextView *)textview; // 用 户 开 始 编 辑 该 UITextView 的 内 容 时 会 激 发 该 方 法 - (void)textviewdidbeginediting:(uitextview *)textview; // 用 户 将 要 结 束 编 辑 该 UITextView 的 内 容 时 会 激 发 该 方 法 - (BOOL)textViewShouldEndEditing:(UITextView *)textview; // 用 户 结 束 编 辑 该 UITextView 的 内 容 时 会 激 发 该 方 法 - (void)textviewdidendediting:(uitextview *)textview; // 该 UITextView 内 指 定 范 围 内 的 文 本 内 容 将 要 被 替 换 时 激 发 该 方 法 - (BOOL)textView:(UITextView *)textview shouldchangetextinrange:(nsrange)range replacementtext:(nsstring *)text; // 该 UITextView 中 包 含 的 文 本 内 容 发 生 改 变 时 会 激 发 该 方 法 - (void)textviewdidchange:(uitextview *)textview; // 用 户 选 中 该 UITextView 内 某 些 文 本 时 会 激 发 该 方 法 - (void)textviewdidchangeselection:(uitextview 从 上 述 代 码 中 可 以 看 出,UITextViewDelegate 协 议 中 定 义 了 很 多 方 法, 这 些 方 法 会 在 不 同 的 状 态 下 被 激 发 例 如 textview:shouldchangetextinrange 方 法 是 替 换 多 行 文 本 控 件 中 指 定 文 本 时 会 触 发 的 方 法, 该 方 法 可 以 实 现 把 回 车 键 当 做 退 出 键 盘 的 响 应 键 2.5 开 关 控 件 (UISwitch) 开 关 控 件 概 述 在 某 些 ios 应 用 中, 经 常 会 看 到 一 些 类 似 传 统 物 理 开 关 的 控 件, 例 如, 手 电 筒 的 开 关 Setting 选 项 中 的 定 位 开 关 等, 这 些 开 关 都 是 使 用 开 关 控 件 UISwitch 实 现 的, 为 了 大 家 更 好 地 理 解 什 么 是 开 关 控 件, 接 下 来, 通 过 一 张 图 来 描 述 开 关 控 件 的 应 用 场 景, 具 体 如 图 2-33 所 示 33
34 图 2-33 Setting 选 项 中 的 Safari 选 项 图 2-33 显 示 的 是 一 个 Setting 选 项 中 的 Safari 选 项 界 面, 该 界 面 中 包 含 了 很 多 UISwitch 控 件, 并 且 这 些 控 件 都 只 有 开 / 关 两 种 状 态 UISwitch 控 件 继 承 自 UIControl 类, 它 是 一 个 可 以 与 用 户 进 行 交 互 的 控 件 同 样, 在 学 习 UISwitch 控 件 之 前, 先 来 看 一 下 UISwitch 所 支 持 的 属 性 将 对 象 库 中 的 UISwitch 控 件 拖 拽 到 Main.storyboard 编 辑 界 面 并 选 中,Xcode 右 侧 会 出 现 UISwitch 的 属 性 检 查 器 面 板, 具 体 如 图 2-34 所 示 图 2-34 UISwitch 控 件 的 属 性 检 查 器 面 板 从 图 2-34 中 可 以 看 出,UISwitch 控 件 属 性 检 查 器 面 板 中 的 属 性 比 较 少, 其 中,State 属 性 用 于 切 换 开 关 控 件 的 开 / 关 状 态, 应 用 程 序 可 以 通 过 属 性 on 或 方 法 ison 来 检 测 当 前 的 状 态 实 战 演 练 使 用 开 关 控 制 灯 泡 在 iphone 或 ipad 设 备 上, 经 常 会 看 到 类 似 于 手 电 筒 这 种 应 用, 它 的 界 面 比 较 简 单, 只 有 一 个 开 关 控 制 手 电 筒 的 打 开 关 闭 状 态, 出 于 这 种 设 计 思 路, 接 下 来, 我 们 使 用 开 关 控 件 UISwitch 来 控 制 灯 泡, 当 用 户 打 开 UISwitch 时, 应 用 程 序 界 面 的 灯 泡 图 片 是 点 亮 的, 当 用 户 关 闭 UISwitch 控 件 时, 灯 泡 的 图 片 是 熄 灭 的, 具 体 步 骤 如 下 : 1. 界 面 设 计 34
35 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 05_UISwitch, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIImageView 控 件 和 一 个 UISwitch 控 件, 其 中,UIImageView 控 件 用 于 显 示 灯 泡 的 图 片,UISwitch 控 件 用 于 显 示 开 关 (2) 将 提 前 准 备 好 的 图 片 放 到 Supporting Files 文 件 中, 并 将 UISwitch 控 件 的 初 始 状 态 设 置 为 打 开,UIImageView 控 件 的 初 始 图 片 是 灯 泡 点 亮 的 状 态, 设 计 好 的 界 面 如 图 2-35 所 示 图 2-35 使 用 开 关 控 制 灯 泡 的 界 面 2. 创 建 控 件 对 象 的 关 联 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 为 UIImageView 控 件 添 加 表 示 图 片 对 象 的 属 性, 命 名 为 img; 同 理, 为 UISwitch 控 件 添 加 切 换 开 关 状 态 的 方 法, 命 名 为 change, 添 加 完 成 后 的 界 面 如 图 2-36 所 示 35
36 图 2-36 为 控 件 对 象 添 加 关 联 3. 通 过 代 码 实 现 灯 泡 开 关 的 控 制 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 灯 泡 开 关 的 控 制 了 进 入 ViewController.m 文 件, 在 change 方 法 中, 首 先 判 断 灯 泡 切 换 时 的 状 态, 然 后 根 据 灯 泡 开 关 的 状 态 对 灯 泡 的 图 片 进 行 切 换 使 用 开 关 控 制 灯 泡 的 具 体 代 码 如 例 2-5 所 示 例 2-5 viewcontroller.m 1 #import "ViewController.h" ViewController () 3 -(IBAction)change:(id)sender; (weak, nonatomic) IBOutlet UIImageView *img; ViewController 7 - (void)viewdidload { 8 [super viewdidload]; 9 } 10 - (IBAction)change:(id)sender { 11 if(![sender ison]){ 12 // 获 取 文 件 的 名 称 13 NSString *filename=[nsstring stringwithformat:@"img_01.jpg"]; 14 // 加 载 图 片 15 UIImage *image=[uiimage imagenamed:filename]; 16 // 更 换 图 片 17 self.img.image=image; 18 }else { 19 // 获 取 文 件 的 名 称 20 NSString *filename=[nsstring stringwithformat:@"img_02.jpg"]; 21 // 加 载 图 片 22 UIImage *image=[uiimage imagenamed:filename]; 23 // 更 换 图 片 24 self.img.image=image; 25 } 26 } 在 例 2-5 中,change 方 法 是 控 制 灯 泡 开 关 的 核 心 代 码, 当 程 序 通 过 调 用 ison 方 法 后, 如 果 判 断 的 结 果 不 是 YES, 则 说 明 控 制 灯 泡 的 开 关 是 关 闭 状 态, 这 时, 将 当 前 界 面 的 图 片 使 用 img_02 替 换 同 理, 如 果 开 关 是 打 开 状 态, 则 将 当 前 页 面 的 图 片 替 换 为 img_01 4. 在 模 拟 器 上 运 行 程 序 36
37 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后, 点 击 开 关 按 钮, 发 现 使 用 开 关 可 以 控 制 灯 泡 具 体 效 果 如 图 2-37 所 示 图 2-37 使 用 开 关 控 制 灯 泡 的 运 行 结 果 2.6 滑 块 控 件 (UISider) 滑 块 控 件 概 述 在 播 放 器 界 面, 经 常 可 以 看 到 类 似 于 进 度 条 的 控 件, 比 如, 音 量 的 控 制 播 放 进 度 的 控 制 在 ios 开 发 中, 这 种 使 用 滑 块 来 改 变 数 值 的 控 件 称 为 滑 块 控 件 滑 块 控 件 使 用 UISider 表 示, 它 继 承 自 UIControl, 是 一 个 可 以 与 用 户 进 行 交 互 的 控 件 接 下 来, 通 过 一 张 音 乐 播 放 的 图 片 来 展 示 UISider 的 应 用 场 景, 如 图 2-38 所 示 37
38 图 2-38 音 乐 播 放 器 的 的 界 面 图 2-38 所 示 的 是 一 个 音 乐 播 放 器 的 界 面, 该 播 放 器 中 的 歌 曲 播 放 进 度 就 是 一 个 滑 块 控 件, 它 可 以 通 过 拖 动 的 方 式 来 改 变 音 乐 的 播 放 进 度 同 学 习 其 他 控 件 一 样, 从 对 象 库 中 将 滑 块 控 件 拖 拽 到 Main.storyboard 编 辑 界 面 中 并 选 中, 在 Xcode 右 侧 查 看 UISider 的 属 性 检 查 器 面 板 中 的 相 关 属 性, 具 体 如 图 2-39 所 示 图 2-39 UISider 的 属 性 检 查 器 面 板 图 2-39 展 示 了 UISider 支 持 的 一 些 属 性, 这 些 属 性 都 可 以 改 变 UISider 的 状 态 同 时, 针 对 UISider 属 性 检 查 器 面 板 设 置 的 属 性,UISider 类 也 定 义 了 与 之 对 应 的 属 性, 接 下 来 通 过 一 张 表 来 列 举 UISider 的 常 见 属 性, 如 表 2-10 所 示 表 2-10 UISider 的 常 见 属 性 属 性 声 明 功 能 描 float value; 设 置 或 者 获 取 滑 块 的 值 38
39 @property(nonatomic) float minimumvalue; 设 置 滑 块 的 最 小 值, 默 认 为 float maximumvalue; 设 置 滑 块 的 最 大 值, 默 认 为 UIImage *minimumvalueimage; 设 置 滑 块 最 小 值 边 界 的 图 UIImage *maximumvalueimage; 设 置 滑 块 最 大 值 边 界 的 图 UIColor *minimumtracktintcolor; 设 置 小 于 滑 块 当 前 值 的 轨 道 颜 色, 默 认 为 蓝 UIColor *maximumtracktintcolor; 设 置 大 于 滑 块 当 前 值 的 轨 道 颜 色, 默 认 为 白 UIColor *thumbtintcolor; 设 置 当 前 拖 动 条 的 颜 色, 默 认 为 白 色 表 2-10 列 举 出 了 UISider 常 见 的 一 些 属 性, 它 们 都 可 以 改 变 滑 块 的 样 式 同 时 UISider 类 还 提 供 了 相 应 的 方 法, 用 来 定 制 滑 块 的 外 观, 接 下 来 通 过 一 张 表 来 列 举 UISider 的 常 见 方 法, 如 表 2-11 所 示 表 2-11 UISider 的 常 见 方 法 方 法 声 明 功 能 描 述 - (void)setthumbimage:(uiimage *)image forstate:(uicontrolstate)state; 设 置 滑 块 上 拖 动 条 的 图 片 - (void)setminimumtrackimage:(uiimage *)image forstate:(uicontrolstate)state; 设 置 滑 块 已 完 成 进 度 的 轨 道 图 片 - (void)setmaximumtrackimage:(uiimage *)image forstate:(uicontrolstate)state; 设 置 滑 块 未 完 成 进 度 的 轨 道 图 片 表 2-11 列 举 出 了 UISider 常 见 的 一 些 方 法, 这 些 方 法 都 需 要 传 入 UIImage 对 象, 使 用 图 片 来 改 变 UISider 的 外 观 实 战 演 练 使 用 滑 块 控 制 音 量 在 大 多 数 应 用 中, 音 量 的 控 制 都 是 通 过 滑 块 控 件 实 现 的 为 了 帮 助 大 家 更 好 地 学 习 滑 块 控 件 UISider 的 使 用, 接 下 来, 我 们 来 模 拟 实 现 一 个 控 制 音 量 的 功 能, 具 体 步 骤 如 下 : 1. 界 面 设 计 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 06_UISider, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UISlider 控 件 一 个 UILabel 控 件 和 一 个 UIImageView 控 件, 其 中 UIImageView 用 于 显 示 图 片,UILabel 用 于 提 示 用 户 拖 动 滑 块,UISlider 用 于 根 据 不 同 的 阶 段 的 值 切 换 图 片 (2) 将 UISlider 控 件 的 的 Current 属 性 为 0.4,UILabel 控 件 的 text 属 性 设 置 为 提 示 : 请 拖 动 滑 块 改 变 音 量 39
40 (3) 将 提 前 准 备 好 的 图 片 资 源 放 到 Supporting Files 文 件 中, 为 UIImageView 设 置 默 认 显 示 的 图 片, 设 计 好 的 界 面 如 图 2-40 所 示 图 2-40 使 用 滑 块 控 制 音 量 的 界 面 2. 创 建 控 件 对 象 的 关 联 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 选 中 UIImageView, 添 加 一 个 表 示 音 量 的 对 象, 命 名 为 voiceimagev, 同 样, 为 UISlider 控 件 添 加 一 个 表 示 音 量 控 制 的 滑 块 对 象, 命 名 为 slider, 添 加 完 成 后 的 界 面 如 图 2-41 所 示 图 2-41 创 建 控 件 对 象 关 联 后 的 界 面 3. 通 过 代 码 实 现 调 节 音 量 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 调 节 音 量 的 功 能 了 进 入 ViewController.m 文 件, 根 据 滑 块 数 值 的 变 化 适 时 地 切 换 音 量 图 片, 具 体 代 码 如 例 2-6 所 示 例 2-6 ViewController.m 40
41 1 #import "ViewController.h" ViewController () 3 // 滑 块 (weak, nonatomic) IBOutlet UISlider *slider; 5 // 音 量 图 片 (weak, nonatomic) IBOutlet UIImageView *voiceimagev; ViewController 9 - (void)viewdidload { 10 // 1. 为 滑 块 控 件 UISider 添 加 监 听 器 11 [self.slider addtarget:self action:@selector(valuechange:) 12 forcontrolevents:uicontroleventvaluechanged]; 13 } 14 // 滑 块 数 值 发 生 变 化 时 会 调 用 的 方 法 15 - (void)valuechange:(uislider *)slider0 16 { 17 // 1. 设 置 图 片 的 数 量 18 int count = 4; 19 // 2. 获 取 滑 块 的 值 20 float level = slider0.value; 21 // 3. 根 据 滑 块 的 值 适 时 切 换 图 片 22 if (level>=0 && level<1.0/(count-1)) { 23 self.voiceimagev.image = [UIImage imagenamed:@"voice0.jpg"]; 24 }else if (level>=1.0/(count-1) && level<2.0/(count-1)){ 25 self.voiceimagev.image = [UIImage imagenamed:@"voice1.jpg"]; 26 }else if(level>=2.0/(count-1) && level<1){ 27 self.voiceimagev.image = [UIImage imagenamed:@"voice2.jpg"]; 28 }else if(level == 1){ 29 self.voiceimagev.image = [UIImage imagenamed:@"voice3.jpg"]; 30 } 31 } 在 例 2-6 中, 第 11~12 行 代 码 为 滑 块 控 件 添 加 监 听 器 方 法, 并 设 置 数 值 变 化 的 监 听 方 法 是 valuechange:, 第 15~31 行 代 码 则 是 方 法 valuechange 的 具 体 实 现, 该 方 法 通 过 划 分 UISider 控 件, 更 换 不 同 的 表 示 音 量 的 图 片, 从 而 实 现 了 对 音 量 的 控 制 4. 在 模 拟 器 上 运 行 程 序 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 以 后, 拖 动 滑 块, 发 现 音 量 可 以 根 据 滑 块 的 拖 动 来 改 变 大 小 使 用 滑 块 控 制 音 量 的 部 分 运 行 结 果 如 图 2-42 所 示 41
42 图 2-42 使 用 滑 块 实 现 音 量 调 节 2.7 分 段 控 件 (UISegmentControl) 分 段 控 件 概 述 目 前, 很 多 手 机 App 程 序 都 会 在 界 面 上 设 计 一 栏 按 钮, 这 些 按 钮 可 以 通 过 切 换, 在 屏 幕 上 展 现 不 同 的 内 容, 例 如, 网 易 新 闻 页 面 频 道 栏 中 的 头 条 娱 乐 图 片 等, 在 ios 中, 这 种 可 以 在 不 同 类 别 信 息 间 进 行 切 换 的 控 件, 称 为 分 段 控 件, 接 下 来, 通 过 一 张 图 片 来 展 示 分 段 控 件 的 应 用 场 景, 具 体 如 图 2-43 所 示 图 2-43 公 交 换 乘 的 应 用 分 段 控 件 使 用 UISegmentControl 表 示, 它 继 承 自 UIControl, 是 一 个 可 活 动 的 控 件 同 其 他 控 件 一 样, 分 段 控 件 也 可 以 通 过 拖 拽 的 方 式 创 建 将 对 象 库 中 的 UISegmentControl 控 件 拖 拽 到 42
43 Main.storyboard 编 辑 界 面 中 并 选 中, 在 Xcode 右 侧 会 出 现 UISegmentControl 的 属 性 检 查 器 面 板, 具 体 如 图 2-44 所 示 图 2-44 UISegmentControl 的 属 性 检 查 器 面 板 从 图 2-44 中 可 以 看 出,UISwitch 控 件 属 性 检 查 器 面 板 中 的 属 性 比 较 少, 其 中,Segments 属 性 的 值 是 一 个 整 数, 它 用 于 控 制 分 段 控 件 被 分 为 几 段,Segment 属 性 则 是 一 个 列 表 框, 它 所 包 含 的 列 表 项 随 着 Segments 属 性 设 置 的 值 而 改 变, 例 如,Segments 的 属 性 设 为 4, 那 么 Segment 的 列 表 框 将 包 含 4 个 列 表 项, 并 且 Segment 0 代 表 第 1 个 分 段,Segment 1 代 表 第 2 个 分 段, 以 此 类 推 实 战 演 练 使 用 分 段 控 件 控 制 花 朵 分 段 控 件 在 实 际 开 发 中 应 用 的 是 非 常 广 泛 的, 为 了 帮 助 大 家 更 好 地 掌 握 分 段 控 件, 接 下 来, 我 们 使 用 分 段 控 件 开 发 一 个 控 制 花 朵 颜 色 的 案 例, 该 案 例 中 共 有 3 个 分 段, 点 击 每 个 分 段 就 会 出 现 不 同 颜 色 的 花 朵, 具 体 步 骤 如 下 : 1. 界 面 设 计 (1) 新 建 一 个 Single View Application 应 用, 命 名 07_UISegmentControl, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UILabel 控 件 一 个 UIImageView 控 件 和 一 个 UISegmentControl 控 件, 其 中,UILabel 控 件 用 于 提 示 用 户 选 择 花 朵 颜 色,UIImageView 控 件 用 于 显 示 花 朵,UISegmentControl 控 件 用 于 控 制 花 朵 的 显 示 (2) 将 提 前 准 备 好 的 图 片 放 到 Supporting Files 文 件 中, 将 UISegmentControl 的 Segments 属 性 设 置 为 3,Segment 属 性 分 别 设 置 为 对 应 的 花 朵 图 片, 设 计 好 的 界 面 如 图 2-45 所 示 43
44 图 2-45 使 用 分 段 控 件 控 件 花 朵 的 界 面 2. 创 建 控 件 对 象 的 关 联 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 为 UIImageView 控 件 添 加 表 示 图 片 对 象 的 属 性, 命 名 为 img; 同 理, 为 UISegmentControl 控 件 添 加 点 击 按 钮 的 方 法, 命 名 为 selectchange, 添 加 完 成 后 的 界 面 如 图 2-46 所 示 图 2-46 为 控 件 对 象 创 建 关 联 3. 通 过 代 码 实 现 用 户 登 录 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 花 朵 的 切 换 了 进 入 ViewController.m 文 件, 在 selectchange 方 法 中, 根 据 分 段 控 件 的 Segment 属 性 判 断 点 击 的 是 哪 个 分 段, 从 而 控 制 不 同 颜 色 花 朵 的 显 示 使 用 分 段 控 件 控 制 花 朵 的 具 体 代 码 如 例 2-7 所 示 例 2-7 viewcontroller.m 1 #import "ViewController.h" 44
45 ViewController () 3 - (IBAction)selectchange:(id)sender;// 声 明 用 于 切 换 图 片 的 分 段 控 件 (weak, nonatomic) IBOutlet UIImageView *img;// 声 明 一 个 图 片 控 件 ViewController 7 - (void)viewdidload { 8 [super viewdidload]; 9 } 10 - (IBAction)selectchange:(id)sender { 11 // 创 建 要 切 换 的 图 片 对 象 12 UIImage *img1=[uiimage imagenamed:@"flower_01.jpg"]; 13 UIImage *img2=[uiimage imagenamed:@"flower_02.jpg"]; 14 UIImage *img3=[uiimage imagenamed:@"flower_03.jpg"]; 15 switch ([sender selectedsegmentindex]) { 16 case 0: 17 self.img.image=img1; 18 break; 19 case 1: 20 self.img.image=img2; 21 break; 22 case 2: 23 self.img.image=img3; 24 break; 25 default: 26 break; 27 } 28 } 在 例 2-7 中, 第 12~14 行 代 码 创 建 了 三 个 UIImage 对 象, 第 15~28 行 代 码 通 过 判 断 分 段 控 件 选 中 的 位 置, 为 UIImageView 对 象 设 置 图 片 4. 在 模 拟 器 上 运 行 程 序 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后, 点 击 分 段 控 件 中 的 每 个 分 段, 发 现 分 段 控 件 可 以 按 照 期 望 控 制 不 同 颜 色 的 花 朵 了 具 体 效 果 如 图 2-47 所 示 45
46 图 2-47 使 用 分 段 控 件 控 制 花 朵 的 运 行 结 果 2.8 数 据 选 择 控 件 日 期 选 择 控 件 (UIDatePicker) UIDatePicker 是 一 个 可 以 用 来 选 择 日 期 和 时 间 的 控 件, 它 继 承 自 UIControl, 是 一 个 可 以 与 用 户 交 互 的 控 件 例 如, 计 时 器 应 用 中 就 用 到 了 UIDatePicker 控 件, 如 图 2-48 所 示 图 2-48 计 时 器 应 用 46
47 UIDatePicker 控 件 同 样 可 以 通 过 拖 拽 的 方 式 创 建, 从 对 象 库 中 找 到 UIDatePicker 控 件, 并 将 其 拖 拽 到 Main.storyboard 编 辑 界 面 中, 这 时, 在 Xcode 右 侧 看 到 UIDatePicker 属 性 检 查 器 面 板 中 的 相 关 属 性, 具 体 如 图 2-49 所 示 图 2-49 UIDatePicker 的 属 性 检 查 器 面 板 图 2-49 显 示 的 是 UIDatePicker 所 支 持 的 一 些 属 性, 其 中,Mode 和 Date 属 性 都 支 持 多 种 选 项, 下 面 针 对 这 两 种 属 性 进 行 详 细 讲 解 : 1. Mode Mode 属 性 用 于 设 置 UIDatePicker 的 模 式, 它 包 含 4 种 选 项, 单 击 Mode 属 性 的 下 拉 列 表, 具 体 如 图 2-50 所 示 图 2-50 mode 属 性 的 四 种 选 项 从 图 2-50 中 可 以 看 出,UIDatePicker 控 件 有 四 种 模 式 可 以 选 择, 这 四 种 模 式 的 相 关 讲 解 具 体 如 下 : Time: 该 UIDatePicker 控 件 只 显 示 时 间, 不 显 示 日 期 Date: 该 UIDatePicker 控 件 只 显 示 日 期, 不 显 示 时 间 47
48 Date and Time: 该 UIDatePicker 控 件 同 时 选 择 日 期 和 时 间 Count Down Timer: 该 UIDatePicker 控 件 仅 显 示 倒 计 时 器 2. Date Date 属 性 用 于 设 置 日 期 选 择 器 的 当 前 时 间, 它 包 含 两 个 选 项, 单 击 Date 属 性 的 下 拉 列 表, 具 体 如 图 2-51 所 示 图 2-51 Date 属 性 的 选 项 从 图 2-51 可 以 看 出,Date 属 性 支 持 两 种 选 项, 这 两 种 选 项 所 表 示 的 含 义 具 体 如 下 : Current Date: 表 示 系 统 当 前 的 时 间 Custom: 表 示 自 定 义 的 时 间, 该 时 间 用 户 可 以 任 意 指 定 针 对 日 期 选 择 控 件 在 属 性 检 查 器 面 板 中 所 支 持 的 属 性,UIDatePicker 类 提 供 了 对 应 的 属 性, 接 下 来, 通 过 一 张 表 来 描 述 UIDatePicker 类 提 供 的 常 见 属 性, 具 体 如 表 2-12 所 示 表 2-12 UIDatePicker 提 供 的 常 见 属 性 属 性 声 明 功 能 描 (nonatomic) UIDatePickerMode datepickermode; 设 置 UIDatePicker 的 模 (nonatomic, retain) NSLocale *locale; 设 置 UIDatePicker 为 国 际 化 时 (nonatomic, retain) NSDate *date; 设 置 UIDatePicker (nonatomic) NSTimeInterval countdownduration; 当 UIDatePicker 模 式 为 Count Down Timer 时, 设 置 剩 余 时 间 表 2-12 中 列 举 了 UIDatePicker 类 的 常 见 属 性, 其 中,countDownDuration 属 性 是 专 门 针 对 CountDown Timer 模 式 的, 它 用 于 获 取 倒 计 时 的 剩 余 时 间 实 战 演 练 倒 计 时 在 UIDatePicker 的 属 性 检 查 器 面 板 中, 如 果 将 Mode 属 性 设 置 为 Count Down Timer, 就 可 以 将 UIDatePicker 控 件 当 做 倒 计 时 器 使 用 接 下 来, 通 过 一 个 案 例 来 演 示 如 何 使 用 UIDatePicker 控 件 实 现 倒 计 时 的 功 能, 具 体 步 骤 如 下 : 1. 界 面 设 计 48
49 (1) 新 建 一 个 Single View Application 应 用, 命 名 08_UIDatePicker, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIDatePicker 控 件 一 个 UIButton 控 件, 其 中,UIDatePicker 控 件 用 于 显 示 时 间, UIButton 控 件 用 于 开 始 计 时 为 了 界 面 美 观, 我 们 在 界 面 中 添 加 几 个 UIImageView 控 件, 作 为 倒 计 时 的 图 标 (2) 将 提 前 准 备 好 的 图 片 放 到 Supporting Files 文 件 中, 将 UIDatePicker 控 件 的 Mode 属 性 设 置 为 Count Down Timer,Date 属 性 设 置 Custom, 设 计 好 的 界 面 如 图 2-52 所 示 图 2-52 倒 计 时 界 面 2. 创 建 控 件 对 象 的 关 联 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 为 UIDatePicker 控 件 创 建 表 示 日 期 控 件 的 属 性, 命 名 为 datepicker, 为 UIButton 控 件 添 加 点 击 事 件, 命 名 为 click 另 外, 由 于 点 击 按 钮 后, 相 当 于 启 动 了 定 时 器 更 新 UIDatePicker 控 件, 这 时, 需 要 禁 用 UIButton 控 件 和 UIDatePicker 控 件, 并 更 改 按 钮 前 面 的 图 片, 因 此, 需 要 为 UIButton UIDatePicker 和 UIImageView 分 别 添 加 一 个 属 性 添 加 完 成 后 的 界 面 如 图 2-53 所 示 49
50 图 2-53 创 建 控 件 对 象 的 关 联 3. 通 过 代 码 实 现 用 户 登 录 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 倒 计 时 的 功 能 了, 进 入 ViewController.m 文 件, 在 click 方 法 中, 首 先 获 取 倒 计 时 的 剩 余 时 间, 然 后 启 动 定 时 器 定 时 更 新 UIDatePicker 的 时 间 ViewController.m 文 件 的 代 码 如 例 2-8 所 示 例 2-8 viewcontroller.m 1 #import "ViewController.h" ViewController () 3 - (IBAction)click:(id)sender; (weak, nonatomic) IBOutlet UIButton *btn_start; (weak, nonatomic) IBOutlet UIImageView *img; (weak, nonatomic) IBOutlet UIDatePicker *datepicker; ViewController 9 NSTimer *timer; 10 NSTimeInterval lefttime; 11 - (void)viewdidload { 12 [super viewdidload]; 13 } 14 - (IBAction)click:(id)sender { 15 // 获 取 倒 计 时 器 的 剩 余 时 间 16 lefttime=self.datepicker.countdownduration; 50
51 17 // 禁 用 UIDatePicker 和 UIButton 控 件 18 self.datepicker.enabled=no; 19 [sender setenabled:no]; 20 // 替 换 图 片 21 UIImage *image=[uiimage 22 self.img.image=image; 23 // 初 始 化 一 个 字 符 串, 用 于 提 示 用 户 开 始 倒 计 时 24 NSString *message=[nsstring 您 还 剩 下 %f 秒 ", lefttime]; 25 // 创 建 一 个 警 告 框, 提 示 开 始 倒 计 时 26 UIAlertView *alert=[[uialertview 开 始 倒 计 时 " 27 message:message delegate:nil 确 定 " 28 otherbuttontitles:nil, nil]; 29 // 显 示 UIAlertView 控 件 30 [alert show]; 31 // 启 用 计 时 器, 控 制 每 隔 60 秒 执 行 一 次 tickdown 方 法 32 timer=[nstimer scheduledtimerwithtimeinterval:60 target:self 33 repeats:yes]; 34 } 35 -(void) tickdown{ 36 lefttime-=60; 37 self.datepicker.countdownduration=lefttime; 38 if (lefttime<=0) { 39 // 取 消 定 时 器 40 [timer invalidate]; 41 // 启 用 UIDatePicker 和 UIButton 控 件, 42 self.datepicker.enabled=yes; 43 self.btn_start.enabled=yes; 44 // 替 换 图 片 45 UIImage *image=[uiimage imagenamed:@"img_02"]; 46 self.img.image=image; 47 } 48 } 在 例 2-8 中,click 方 法 是 实 现 倒 计 时 功 能 的 具 体 实 现, 在 该 方 法 中, 第 32~34 行 代 码 启 动 了 一 个 定 时 器, 用 于 控 制 每 隔 60 秒 执 行 一 次 tickdown 方 法, 而 tickdown 方 法 每 执 行 一 次, 程 序 就 会 将 剩 余 时 间 减 少 60 秒, 直 到 剩 余 时 间 小 于 等 于 0 为 止 4. 在 模 拟 器 上 运 行 程 序 51
52 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后, 点 击 开 始 计 时 的 按 钮, 会 弹 出 一 个 提 示 框, 提 示 剩 余 时 间, 点 击 确 定 按 钮 后, 就 可 以 看 到 该 倒 计 时 器 每 隔 60 秒 跳 动 一 次, 剩 余 时 间 减 少 1 分 钟 以 开 始 时 间 为 1 小 时 4 分 钟 为 例, 倒 计 时 的 效 果 如 图 2-54 所 示 图 2-54 倒 计 时 效 果 选 择 控 件 (UIPickerView) 除 了 日 期 选 择 控 件 外, 还 有 一 种 选 择 控 件 是 UIPickerView, 它 直 接 继 承 于 UIView, 是 一 个 既 能 生 成 单 列 选 择 器, 也 能 生 成 多 列 选 择 器, 又 能 自 定 义 外 观 的 静 态 控 件 为 了 让 大 家 更 好 地 认 识 什 么 是 选 择 控 件, 接 下 来 通 过 一 张 图 片 展 示 UIPickerView 的 使 用 场 景, 如 图 2-55 所 示 图 2-55 UIPickerView 的 使 用 场 景 图 2-55 所 示 的 是 一 个 水 果 机 应 用 的 界 面, 该 应 用 界 面 中 的 水 果 选 择 控 件 是 使 用 UIPickerView 实 现 的 52
53 同 样, 将 UIPickerView 从 对 象 库 中 拖 拽 到 Main.storyboard 编 辑 界 面 并 选 中, Xcode 右 侧 出 现 了 UIPickerView 的 属 性 检 查 器 面 板, 该 面 板 用 于 设 置 UIPickerView 的 相 关 属 性, 具 体 如 图 2-56 所 示 图 2-56 UIPickerView 的 属 性 检 查 器 面 板 图 2-56 展 示 了 UIPickerView 的 Behavior 属 性, 该 属 性 用 于 显 示 选 中 行 的 标 记, 一 般 以 高 亮 背 景 作 为 选 中 标 记 同 时,UIPickerView 类 也 提 供 了 相 应 的 属 性, 接 下 来 通 过 一 张 表 来 列 举 UIPickerView 的 常 见 属 性, 如 表 2-13 所 示 表 2-13 UIPickerView 的 常 见 属 性 方 法 声 明 功 能 描 id<uipickerviewdatasource> 设 置 数 据 源 id<uipickerviewdelegate> 设 置 代 理 delegate; 设 置 是 否 显 示 BOOL showsselectionindicator; 的 选 中 标 记 获 取 UIPickerView 指 定 列 NSInteger 包 含 的 列 表 项 的 数 量, 该 属 性 numberofcomponents; 权 限 为 只 读 表 2-13 列 举 了 UIPickerView 的 一 些 常 见 属 性, 其 中 datasource 和 delegate 这 两 个 属 性 非 常 重 要, 接 下 来, 针 对 它 们 进 行 详 细 地 讲 解 1. datasource datasource 代 表 数 据 源, 该 属 性 用 于 指 定 UIPickerView 的 数 据 源, 提 供 丰 富 的 内 容, 但 是 前 提 要 遵 守 UIPickerViewDataSource 协 议, 该 协 议 的 定 义 方 式 如 下 所 示 UIPickerViewDataSource<NSObject> // 数 据 源 协 53
54 // 返 回 选 择 器 总 共 有 多 少 列 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerview; // 返 回 选 择 器 每 列 总 共 有 多 少 行 - (NSInteger)pickerView:(UIPickerView *)pickerview 从 上 述 可 以 看 出,UIPickerViewDataSource 协 议 定 义 了 两 个 方 法, 这 些 方 法 是 使 关 键 字 修 饰 的 必 须 要 实 现 的 方 法, 通 过 委 托 代 理 的 方 式 限 制 数 据 信 息 的 展 示 的 样 式, 比 如 行 数 和 列 数, 因 此 我 们 又 称 之 为 数 据 源 协 议 2. delegate delegate 表 示 代 理, 该 属 性 用 于 设 定 UIPickerView 的 代 理, 实 现 代 理 对 UIPickerView 的 监 听, 但 是 前 提 要 遵 守 UIPickerViewDelegate 协 议, 该 协 议 的 定 义 方 式 如 下 所 示 UIPickerViewDelegate<NSObject> // 代 理 协 // 返 回 第 component 列 每 一 行 的 宽 度 - (CGFloat)pickerView:(UIPickerView *)pickerview widthforcomponent:(nsinteger)component; // 返 回 第 component 列 每 一 行 的 高 度 - (CGFloat)pickerView:(UIPickerView *)pickerview rowheightforcomponent:(nsinteger)component; // 设 置 选 择 器 每 行 显 示 的 文 本 内 容 - (NSString *)pickerview:(uipickerview *)pickerview titleforrow:(nsinteger)row forcomponent:(nsinteger)component; // 设 置 选 择 器 每 行 显 示 的 视 图 内 容 - (UIView *)pickerview:(uipickerview *)pickerview viewforrow:(nsinteger)row forcomponent:(nsinteger)component reusingview:(uiview *)view; // 点 击 选 择 器 某 列 某 行 时, 就 会 调 用 这 个 方 法 - (void)pickerview:(uipickerview *)pickerview didselectrow:(nsinteger)row 从 上 述 可 以 看 出,UIPickerViewDelegate 协 议 定 义 了 一 些 方 法, 这 些 方 法 都 可 以 展 示 选 择 器 每 行 每 列 的 信 息, 且 方 法 是 可 选 择 实 现 的 例 如 pickerview: titleforrow: forcomponent 方 法 根 据 相 应 的 数 据, 展 示 选 择 器 每 行 对 应 的 文 本 内 容 除 了 协 议 方 法 之 外,UIPickerView 类 也 定 义 了 一 些 常 见 的 方 法, 接 下 来 通 过 一 张 表 列 举 UIPickerView 的 常 见 方 法, 如 表 2-14 所 示 表 2-14 UIPickerView 的 常 见 方 法 方 法 声 明 功 能 描 述 54
55 - (NSInteger)numberOfRowsInComponent: (NSInteger)component; - (CGSize)rowSizeForComponent: (NSInteger)component; - (UIView *)viewforrow:(nsinteger)row forcomponent:(nsinteger)component; 返 回 第 component 列 有 多 少 行 返 回 第 component 列 中 一 行 的 尺 寸 设 置 选 择 器 某 列 某 行 的 视 图 内 容 - (void)reloadallcomponents; 刷 新 所 有 列 的 数 据 - (void)reloadcomponent:(nsinteger) 刷 新 某 一 列 的 数 据 component; - (void)selectrow:(nsinteger)row incomponent:(nsinteger)component 设 置 是 否 动 画 选 中 某 列 某 行 animated:(bool)animated; - (NSInteger)selectedRowInComponent: 返 回 选 中 的 是 第 component 列 的 第 几 行 (NSInteger)component; 表 2-14 列 举 了 UIPickerView 类 一 些 常 见 的 方 法, 这 些 方 法 配 合 使 用, 可 以 协 调 展 示 不 同 样 式 的 选 择 器 实 战 演 练 点 菜 系 统 随 着 社 会 的 发 展, 人 们 对 生 活 质 量 的 要 求 不 断 提 高, 也 越 来 越 注 重 于 饮 食 去 酒 店 吃 饭 成 了 人 们 生 活 中 的 一 部 分 为 了 提 高 酒 店 的 服 务 质 量, 开 发 一 套 完 善 的 酒 店 点 菜 系 统 是 必 要 的 接 下 来, 带 领 大 家 使 用 UIPickerView 开 发 一 个 点 餐 系 统, 具 体 步 骤 如 下 : 1. 界 面 设 计 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 09_UIPickerView, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIPickerView 一 个 UIView 三 个 UIButton 和 九 个 UILabel, 其 中 UIPickerView 用 于 滚 动 选 中 菜 系 内 容,UILabel 用 于 显 示 选 择 器 选 中 的 菜 系,UIButton 用 于 钮 UIPickerView 随 机 选 中 菜 系 (2) 设 置 UIView 的 背 景 颜 色, 并 用 于 保 存 菜 系 数 据 的 foods.plist 文 件 放 到 Supporting Files 文 件 中, 设 计 好 的 界 面 如 图 2-57 所 示 55
56 图 2-57 点 菜 系 统 界 面 2. 创 建 控 件 对 象 的 关 联 (1) 点 击 Main.storyboard 左 下 角 的 图 标, 打 开 Objects 列 表 区, 选 中 UIPickerView 右 击, 弹 出 一 个 黑 框 列 表, 从 该 列 表 datasource 选 项 后 的 空 圆 圈 拖 线 到 Objects 列 表 区 中 的 控 制 器 文 件, 设 置 UIPickerView 的 datasource 为 控 制 器, 具 体 如 图 2-58 所 示 图 2-58 设 置 UIPickerView 的 datasource 为 控 制 器 (2) 同 样 的 方 式, 设 置 UIPickerView 的 delegate 为 控 制 器, 具 体 如 图 2-59 所 示 56
57 图 2-59 设 置 UIPickerView 的 delegate 为 控 制 器 (3) 使 用 控 件 和 代 码 关 联 的 方 式, 为 UIButton 添 加 点 击 事 件, 添 加 UILabel 和 UIPickerView 属 性, 添 加 完 成 后 的 界 面 如 图 2-60 所 示 图 2-60 完 成 控 件 对 象 关 联 的 界 面 3. 通 过 代 码 实 现 点 菜 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 点 菜 的 功 能 了 进 入 ViewController.m 文 件, 遵 守 数 据 源 和 代 理 协 议, 将 数 据 信 息 展 示 到 UIPickerView 控 件 中, 并 将 选 中 的 行 内 容 显 示 到 对 应 UILabel 上, 具 体 代 码 如 例 2-9 所 示 57
58 1 #import "ViewController.h" 例 2-9 ViewController.m 2 // 遵 守 数 据 源 和 代 理 协 议 ViewController ()<UIPickerViewDataSource, UIPickerViewDelegate> (nonatomic, strong)nsarray *foods; // 保 存 plist 文 件 中 所 有 的 food 5 // (weak, nonatomic) IBOutlet UILabel *fruitlabel; (weak, nonatomic) IBOutlet UILabel *mainlabel; (weak, nonatomic) IBOutlet UILabel *drinklabel; (weak, nonatomic) IBOutlet UIPickerView *pickerview; 10 - (IBAction)random; // 生 成 随 机 套 餐 方 法 11 - (IBAction)certain; // 确 定 方 法 12 - (IBAction)cancel; // 取 消 方 法 ViewController 15 // 懒 加 载 数 组 16 - (NSArray *)foods 17 { 18 if (_foods == nil) { 19 _foods = [NSArray arraywithcontentsoffile:[[nsbundle mainbundle] 20 pathforresource:@"foods" oftype:@"plist"]]; 21 } 22 return _foods; 23 } 24 - (void)viewdidload { 25 [super viewdidload]; 26 for (int i = 0; i < 3; i++) { // 选 中 每 一 列 的 第 一 行 27 [self pickerview:nil didselectrow:0 incomponent:i]; 28 } 29 } 30 #pragma mark - UIPickerViewDataSource 31 // 总 共 有 多 少 列 32 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerview 33 { 34 return self.foods.count; 35 } 36 // 每 列 总 共 有 多 少 行 37 - (NSInteger)pickerView:(UIPickerView *)pickerview 58
59 38 numberofrowsincomponent:(nsinteger)component 39 { 40 NSArray *subfood = self.foods[component]; 41 return subfood.count; 42 } 43 #pragma mark - UIPickerViewDelegate 44 // 第 component 列 的 第 row 行 显 示 文 字 内 容 45 - (NSString *)pickerview:(uipickerview *)pickerview 46 titleforrow:(nsinteger)row forcomponent:(nsinteger)component 47 { 48 return self.foods[component][row]; 49 } 50 // 选 中 了 第 component 列 的 第 row 行 51 - (void)pickerview:(uipickerview *)pickerview didselectrow:(nsinteger)row 52 incomponent:(nsinteger)component 53 { 54 // 将 选 中 行 的 文 本 显 示 到 对 应 的 Label 55 if (component == 0) { // 水 果 Label 56 self.fruitlabel.text = self.foods[component][row]; 57 }else if (component == 1){ // 主 菜 Label 58 self.mainlabel.text = self.foods[component][row]; 59 }else if(component == 2){ // 饮 料 Label 60 self.drinklabel.text = self.foods[component][row]; 61 } 62 } 63 // 设 置 行 高 64 - (CGFloat)pickerView:(UIPickerView *)pickerview 65 rowheightforcomponent:(nsinteger)component 66 { 67 return 35; 68 } 69 // 随 机 选 中 一 份 套 餐 70 - (IBAction)random { 71 for (int component = 0; component < self.foods.count; component++) { 72 // 1. 第 component 列 数 组 的 总 长 度 73 int count = [self.foods[component] count]; 74 // 2. 旧 的 行 号 75 int oldrow = [self.pickerview selectedrowincomponent:component]; 59
60 76 // 3. 第 几 行 ( 默 认 新 的 行 号 跟 旧 的 行 号 一 样 ) 77 int row = oldrow; 78 // 4. 保 证 行 数 跟 上 一 次 不 一 样 79 while (row == oldrow) { 80 row = arc4random()%count; 81 } 82 // 5. 让 pickerview 主 动 选 中 第 compoent 列 的 第 row 行 83 [self.pickerview selectrow:row incomponent:component animated:yes]; 84 // 6. 设 置 label 的 文 字 85 [self pickerview:nil didselectrow:row incomponent:component]; 86 } 87 } 88 // 点 击 确 定 89 - (IBAction)certain { 90 // 提 示 用 户 点 餐 成 功 91 UIAlertView *alert = [[UIAlertView alloc] initwithtitle:@" 点 餐 成 功 " 92 message:@" 请 稍 后 " delegate:nil cancelbuttontitle:@" 好 的 " 93 otherbuttontitles:nil, nil]; 94 [alert show]; 95 } 96 // 点 击 取 消 97 - (IBAction)cancel { 98 // 直 接 回 到 初 始 化 时 候 99 for (int i = 0; i < 3; i++) { 100 [self pickerview:nil didselectrow:0 incomponent:i]; 101 [self.pickerview selectrow:0 incomponent:i animated:yes]; 102 } 103 } 在 例 2-9 中, 第 3 行 代 码 遵 守 了 数 据 源 和 代 理 协 议, 第 4 行 代 码 定 义 了 一 个 数 组, 用 于 保 存 plist 文 件 中 所 有 的 foods 数 据, 第 5~22 行 代 码 使 用 懒 加 载 的 方 法 初 始 化 数 组,29~37 行 代 码 分 别 为 数 据 源 和 代 理 协 议 中 定 义 的 一 些 方 法, 用 于 展 示 数 组 中 的 数 据, 第 68~102 行 代 码 分 别 为 点 击 随 机 确 定 和 取 消 按 钮 后 执 行 的 行 为 4. 在 模 拟 器 上 运 行 程 序 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后,UIPickerView 选 中 的 数 据 成 功 的 展 示 到 Label 中, 点 击 随 机 确 定 和 取 消 按 钮, 也 都 一 一 对 应 完 成 了 相 应 的 功 能 程 序 运 行 结 果 的 部 分 结 果 如 图 2-61 所 示 60
61 图 2-61 程 序 运 行 部 分 场 景 图 多 学 一 招 : 懒 加 载 我 们 知 道 ios 设 备 的 内 存 有 限 如 果 在 程 序 在 启 动 后 就 一 次 性 加 载 应 用 程 序 将 来 会 用 到 的 所 有 资 源 ( 例 如 大 量 数 据 图 片 音 频 等 ), 那 么 就 有 可 能 会 耗 尽 ios 设 备 的 内 存, 就 会 造 成 应 用 程 序 运 行 缓 慢, 或 者 出 现 卡 顿, 甚 至 于 应 用 程 序 会 发 生 崩 溃 同 很 多 语 言 一 样,iOS 中 用 懒 加 载 的 方 式 来 加 载 这 些 资 源, 对 这 些 资 源 进 行 合 理 化 的 管 理 懒 加 载 又 称 之 为 延 迟 加 载, 说 的 通 俗 一 点, 就 是 在 开 发 中, 程 序 启 动 的 时 候 不 立 刻 使 用 的 资 源 先 不 加 载, 当 程 序 运 行 的 时 候 中 需 要 使 用 资 源 的 时 候 再 去 加 载 它 懒 加 载 用 于 get 方 法 主 要 有 以 下 好 处 : 效 率 低, 占 用 内 存 小 不 必 将 创 建 对 象 的 代 码 全 部 写 在 viewdidload 方 法 中, 代 码 的 可 读 性 更 强 每 个 控 件 的 get 方 法 中 负 责 自 身 的 实 例 化, 代 码 彼 此 之 间 的 独 立 性 强, 耦 合 度 低 2.9 屏 幕 滚 动 控 件 (UIScrollView) 屏 幕 滚 动 控 件 概 述 移 动 设 备 的 屏 幕 大 小 是 极 其 有 限 的, 因 此 直 接 展 示 在 用 户 眼 前 的 内 容 也 是 有 限 的 当 屏 幕 展 示 的 内 容 较 多 超 出 一 个 屏 幕 时, 用 户 可 以 通 过 滚 动 的 方 式 来 查 看 屏 幕 外 的 内 容 在 ios 中, UIScrollView 是 一 个 支 持 滚 动 的 控 件, 它 直 接 继 承 自 UIView, 可 以 用 来 展 示 大 量 的 内 容, 并 且 可 以 通 过 滚 动 的 方 式 查 看 所 有 的 内 容 为 了 让 大 家 更 好 地 理 解, 接 下 来 通 过 一 张 图 片 来 展 示 UIScrollView 的 使 用 场 景, 如 图 2-62 所 示 61
62 图 2-62 UIScrollView 的 使 用 场 景 图 2-62 是 一 个 新 闻 页 面, 该 页 面 有 很 多 内 容 需 要 展 示, 因 此, 该 页 面 中 包 含 了 一 个 UIScrollView 控 件, 用 户 可 以 通 过 滚 动 的 方 式 来 在 有 限 的 屏 幕 中 查 看 更 多 内 容 UIScrollView 控 件 同 其 他 控 件 一 样, 都 包 含 很 多 属 性, 同 样, 从 对 象 库 中 找 到 Scroll View, 将 其 拖 拽 到 Main.storyboard 编 辑 界 面 中, 在 Xcode 右 侧 会 出 现 UIScrollView 的 属 性 检 测 器 面 板, 该 面 板 可 以 设 置 UIScrollView 的 相 关 属 性, 具 体 如 图 2-63 所 示 图 2-63 UIScrollView 的 属 性 检 测 器 面 板 针 对 UIScrollView 属 性 检 查 器 面 板 设 置 的 属 性,UIScrollView 类 也 定 义 了 与 之 对 应 的 属 性, 接 下 来 通 过 一 张 表 来 列 举 UIScrollView 的 常 见 属 性, 如 表 2-15 所 示 62
63 属 性 声 明 表 2-15 UIScrollView 的 常 见 属 性 功 能 描 CGPoint contentoffset; 设 置 滚 动 视 图 的 滚 动 偏 移 CGSize contentsize; 设 置 滚 动 视 图 的 滚 动 范 UIEdgeInsets id<uiscrollviewdelegate> BOOL BOOL BOOL BOOL CGFloat CGFloat maximumzoomscale; 设 置 滚 动 视 图 的 额 外 滚 动 区 域 设 置 代 理 设 置 滚 动 视 图 是 否 允 许 滚 动 设 置 滚 动 视 图 是 否 开 启 分 页 设 置 滚 动 视 图 是 否 显 示 水 平 滚 动 条 设 置 滚 动 视 图 是 否 显 示 垂 直 滚 动 条 设 置 滚 动 视 图 的 最 小 缩 放 比 例 设 置 滚 动 视 图 的 最 大 缩 放 比 BOOL scrollstotop; 设 置 滚 动 视 图 是 否 滚 动 到 顶 部 表 2-15 列 举 了 UIScrollView 的 常 见 属 性, 其 中 contentoffset contentsize contentinset 是 UIScrollView 支 持 的 三 个 控 件 显 示 区 域 属 性, delegate 为 代 理 属 性, 这 些 属 性 都 比 较 重 要, 接 下 来 针 对 这 几 个 属 性 进 行 详 细 介 绍 1. contentsize 该 属 性 是 一 个 CGSize 类 型 的 值,CGSize 是 一 个 结 构 体 类 型, 它 包 含 width height 两 个 成 员 变 量, 代 表 着 该 UIScrollView 所 需 要 显 示 内 容 的 完 整 高 度 和 完 整 宽 度 例 如, 内 容 视 图 为 灰 色 部 分, 它 的 大 小 为 , 而 ScrollView 视 图 的 大 小 只 有 , 由 于 内 容 视 图 超 出 了 ScrollView 可 显 示 的 大 小, 因 此, 需 要 滚 动 屏 幕 来 查 看 内 容, 具 体 如 图 2-64 所 示 63
64 contentsize.width Text Field frame.width frame.height 内 容 视 图 contentsize.height Button 图 2-64 contentsize 属 性 2. contentinset 该 属 性 是 一 个 UIEdgeInsets 类 型 的 值,UIEdgeInsets 也 是 一 个 结 构 体 类 型, 它 包 含 top left bottom right 四 个 成 员 变 量, 分 别 代 表 着 该 UIScrollView 所 需 要 显 示 内 容 在 上 左 下 右 的 留 白 例 如, 内 容 视 图 为 灰 色 部 分, 它 的 大 小 为 , 而 ScrollView 的 大 小 只 有 , 由 于 内 容 视 图 超 出 了 ScrollView 可 显 示 的 大 小, 并 且 上 方 要 留 一 部 分 空 白 显 示 其 他 控 件, 因 此, 需 要 滚 动 屏 幕 来 查 看 内 容, 具 体 如 图 2-65 所 示 Text Field contentinset.top 内 容 视 图 Button 图 2-65 contentinset 属 性 64
65 3. contentoffset 该 属 性 是 一 个 CGPoint 类 型 的 值,CGPoint 也 是 一 个 结 构 体 类 型, 它 包 含 x y 两 个 成 员 变 量, 代 表 内 容 视 图 的 坐 标 原 点 与 该 UIScrollView 坐 标 原 点 的 偏 移 量, 具 体 如 图 2-66 所 示 contentoffset.y Text Field Text Field 内 容 视 图 Button 图 2-66 contentoffset 属 性 4. delegate 该 属 性 是 一 个 id 类 型 的 值, 它 可 以 指 定 代 理 对 象 在 ScrollView 中 定 义 了 一 个 UIScrollViewDelegate 协 议, 该 协 议 定 义 了 许 多 可 以 监 听 UIScrollView 滚 动 过 程 的 方 法, 例 如, 要 想 监 听 ScrollView 的 缩 放 和 拖 拽, 可 以 通 过 遵 守 UIScrollViewDelegate 协 议, 指 定 ScrollView 的 代 理 对 象 来 实 现 UIScrollViewDelegate 协 议 的 定 义 方 式 如 下 所 示 // 滚 动 UIScrollView 时 就 会 调 用 该 方 法 - (void)scrollviewdidscroll:(uiscrollview *)scrollview; // 缩 放 UIScrollView 时 就 会 调 用 该 方 法 - (void)scrollviewdidzoom:(uiscrollview *)scrollview; // 即 将 拖 拽 UIScrollView 时 就 会 调 用 该 方 法 - (void)scrollviewwillbegindragging:(uiscrollview *)scrollview; // 即 将 停 止 拖 拽 UIScrollView 时 就 会 调 用 该 方 法 - (void)scrollviewwillenddragging:(uiscrollview *)scrollview withvelocity:(cgpoint)velocity targetcontentoffset:(inout CGPoint *) targetcontentoffset; // 停 止 拖 拽 UIScrollView 时 就 会 调 用 该 方 法 65
66 - (void)scrollviewdidenddragging:(uiscrollview *)scrollview willdecelerate:(bool)decelerate; // UIScrollView 即 将 减 速 时 就 会 调 用 该 方 法 - (void)scrollviewwillbegindecelerating:(uiscrollview *)scrollview; // UIScrollView 减 速 完 成 时 就 会 调 用 该 方 法 - (void)scrollviewdidenddecelerating:(uiscrollview *)scrollview; // 返 回 缩 放 的 视 图, 这 个 视 图 必 须 是 UIScrollView 的 子 视 图 - (UIView *)viewforzoominginscrollview:(uiscrollview *)scrollview; // UIScrollView 即 将 缩 放 时 就 会 调 用 该 方 法 - (void)scrollviewwillbeginzooming:(uiscrollview *)scrollview withview:(uiview *)view; // UIScrollView 完 成 缩 放 时 就 会 调 用 该 方 法 - (void)scrollviewdidendzooming:(uiscrollview *)scrollview withview: (UIView *)view 从 上 述 代 码 中 可 以 看 出,UIScrollViewDelegate 协 议 中 定 义 了 许 多 供 代 理 监 听 的 方 法, 这 些 方 法 会 在 滚 动 视 图 的 不 同 状 态 下 被 调 用 例 如,scrollViewDidScroll 方 法 是 改 变 滚 动 视 图 偏 移 量 时 调 用 的 方 法, 该 方 法 会 在 视 图 滚 动 后 执 行 实 战 演 练 喜 马 拉 雅 UIScrollView 在 ios 开 发 中 经 常 使 用, 它 主 要 用 于 在 有 限 的 屏 幕 上 展 示 更 多 的 内 容 为 了 大 家 更 好 地 掌 握 UIScrollView 的 使 用, 接 下 来 带 领 大 家 搭 建 一 个 喜 马 拉 雅 的 应 用 界 面, 具 体 步 骤 如 下 : 1. 界 面 设 计 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 10_UIScrollView, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIScrollView 两 个 UIView 一 个 UILabel 和 十 二 个 UIButton, 其 中 UIButton 只 作 显 示, 不 支 持 点 击 事 件,UIScrollView 用 于 滚 动 它 内 部 包 含 的 内 容 视 图 (2) 将 提 前 准 备 好 的 图 片 放 到 Images.xcassets 文 件 中, 并 为 UIButton 设 置 普 通 和 高 亮 状 态 下 的 背 景 图 片, 设 计 好 的 界 面 如 图 2-67 所 示 66
67 图 2-67 搭 建 好 的 喜 马 拉 雅 界 面 在 图 2-67 中,UIScrollView 上 添 加 了 七 个 UIButton, 它 们 分 别 设 置 了 普 通 状 态 下 的 背 景 图 片, 由 于 屏 幕 尺 寸 的 限 制, 无 法 展 示 在 UIScrollView 最 底 部 的 一 个 UIButton 需 要 注 意 的 是, 只 有 添 加 到 UIScrollView 内 部 的 控 件 才 能 实 现 滚 动, 如 同 绑 定 的 关 系, 例 如 PPT 中 的 组 合 功 能 2. 创 建 控 件 对 象 的 关 联 (1) 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 使 用 控 件 和 代 码 关 联 的 方 式, 为 UIScrollView 和 其 内 部 最 底 部 的 UIButton 添 加 两 个 属 性, 分 别 命 名 为 scrollview 和 lastview, 添 加 完 成 后 的 界 面 如 图 2-68 所 示 图 2-68 创 建 视 图 对 象 的 关 联 从 图 2-68 中 可 以 看 出, 完 成 控 件 对 象 的 关 联 后, 成 功 添 加 了 两 个 属 性 3. 通 过 代 码 实 现 滚 动 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 实 现 滚 动 的 功 能 了 进 入 ViewController.m 文 件, 在 viewdidload 方 法 中 实 现 滚 动 的 功 能, 具 体 代 码 如 例 2-10 所 示 67
68 1 #import "ViewController.h" 例 2-10 viewdidload ViewController () 3 // 定 义 了 两 个 属 性 scrollview 和 lastview, 分 别 表 示 滚 动 视 图 和 其 内 部 最 底 部 的 视 图 (weak, nonatomic) IBOutlet UIScrollView *scrollview; (weak, nonatomic) IBOutlet UIButton *lastview; ViewController 8 - (void)viewdidload { 1 [super viewdidload]; 9 // 1. 获 取 lastview 的 最 大 Y 值 10 CGFloat lastviewh = CGRectGetMaxY(self.lastView.frame) + 10; 11 // 2. 设 置 scrollview 的 滚 动 范 围 12 self.scrollview.contentsize = CGSizeMake(0, lastviewh); 13 // 3. 设 置 scrollview 的 偏 移 量 14 self.scrollview.contentoffset = CGPointMake(0, -54); 15 // 4. 设 置 scrollview 的 间 距 2 self.scrollview.contentinset = UIEdgeInsetsMake(54, 0, 44, 0); 3 } 在 例 2-10 中, 第 8~18 行 代 码 是 viewdidload 方 法, 该 方 法 中 首 先 根 据 最 底 部 视 图 的 Y 值 确 定 scrollview 的 滚 动 范 围, 然 后 设 置 scrollview 的 偏 移 量 和 间 距, 协 调 滚 动 视 图 跟 其 它 视 图 的 位 置, 使 界 面 更 加 美 观 4. 在 模 拟 器 上 运 行 程 序 点 击 Xcode 工 具 的 运 行 按 钮, 在 模 拟 器 上 运 行 程 序 程 序 运 行 成 功 后, 发 现 视 图 可 以 滚 动 了, 并 且 最 底 部 的 视 图 也 能 显 现 出 来, 滚 动 界 面 的 部 分 场 景 图 片 如 图 2-69 所 示 图 2-69 滚 动 界 面 68
69 2.10 页 控 件 (UIPageControl) 页 控 件 概 述 顾 名 思 义, 页 控 件 是 一 个 可 以 实 现 翻 页 效 果 的 控 件, 它 是 一 个 比 较 简 单 的 控 件, 由 N 个 小 圆 点 组 成, 每 个 小 圆 点 代 表 一 个 页 面, 并 且 当 前 页 面 使 用 高 亮 的 圆 点 显 示 在 ios 中, 页 控 件 使 用 UIPageControl 类 来 表 示, 它 直 接 继 承 于 UIControl:UIView, 是 一 个 可 以 与 用 户 交 互 的 活 动 控 件 接 下 来 通 过 一 张 图 片 来 展 示 UIPageControl 的 使 用 场 景, 如 图 2-70 所 示 图 2-70 UIPageControl 的 使 用 场 景 图 2-70 中 标 示 了 5 个 小 圆 点, 并 且 第 2 个 小 圆 点 是 高 亮 状 态, 说 明 页 控 件 包 含 5 个 页 面, 并 且 当 前 页 面 是 第 2 个 页 面 页 控 件 UIPageControl 同 样 可 以 从 对 象 库 中 找 到 将 UIPageControl 控 件 从 对 象 库 中 拖 拽 到 Main.storyboard 编 辑 界 面 中, 在 Xcode 右 侧 查 看 UIPageControl 的 属 性 检 测 器 面 板, 具 体 如 图 2-71 所 示 69
70 图 2-71 UIPageControl 的 属 性 检 测 器 面 板 图 2-71 显 示 的 是 UIPageControl 所 支 持 的 一 些 属 性, 通 过 对 这 些 属 性 的 设 置, 可 以 使 页 控 件 发 生 相 应 的 变 化 针 对 UIPageControl 属 性 检 查 器 面 板 设 置 的 属 性,UIPageControl 类 也 定 义 了 与 之 对 应 的 属 性, 接 下 来 通 过 一 张 表 来 列 举 UIPageControl 的 常 见 属 性, 如 表 2-17 所 示 表 2-17 UIPageControl 的 常 见 属 性 属 性 声 明 功 能 描 NSInteger numberofpages; 设 置 总 共 有 多 少 NSInteger currentpage; 设 置 当 前 是 第 几 UIColor 设 置 页 码 指 示 器 的 颜 色 UIColor 设 置 当 前 页 码 指 示 器 的 颜 色 *currentpageindicatortintcolor; 表 2-17 列 举 了 UIPageControl 所 支 持 的 一 些 属 性, 它 们 均 可 以 设 置 页 控 件 的 外 观 实 战 演 练 自 动 轮 播 器 实 际 项 目 中, 经 常 会 把 UIScrollView 和 UIPageControl 结 合 使 用, 接 下 来, 带 领 大 家 使 用 这 两 个 控 件 完 成 一 个 自 动 轮 播 器, 具 体 步 骤 如 下 : 1. 界 面 设 计 (1) 新 建 一 个 Single View Application 应 用, 名 称 为 10_UIScrollView 和 UIPageControl, 然 后 在 Main.storyboard 界 面 中 添 加 一 个 UIScrollView 一 个 UIPageControl 一 个 UIView 和 一 个 UILabel, 其 中,UIScrollView 用 于 显 示 轮 播 图 片,UIPageControl 用 于 显 示 页 码 (2) 将 提 前 准 备 好 的 图 片 放 到 Images.xcassets 文 件 中, 并 为 UIPageControl 的 圆 点 和 高 亮 圆 点 分 别 设 置 白 色 和 蓝 色, 设 计 好 的 界 面 如 图 2-72 所 示 2. 创 建 控 件 对 象 的 关 联 图 2-72 搭 建 好 的 界 面 70
71 (1) 点 击 Main.storyboard 左 下 角 的 图 标, 打 开 Objects 列 表 区, 选 中 UIScrollView 右 击, 弹 出 一 个 黑 框 列 表, 从 该 列 表 delegate 选 项 后 的 空 圆 圈 拖 线 到 Objects 列 表 区 中 的 控 制 器 文 件, 设 置 UIScrollView 的 delegate 为 控 制 器, 具 体 如 图 2-73 所 示 图 2-73 设 置 UIScrollView 的 delegate 为 控 制 器 (2) 点 击 Xcode 6.1 界 面 右 上 角 的 图 标, 进 入 控 件 与 代 码 的 关 联 界 面, 使 用 使 用 控 件 和 代 码 关 联 的 方 式, 为 UIScrollView 和 UIPageControl 添 加 两 个 属 性, 分 别 命 名 为 scrollview 和 pagecontrol, 用 于 表 示 轮 播 器 和 页 码 指 示 器, 添 加 完 成 后 的 界 面 如 图 2-74 所 示 图 2-74 创 建 UIScrollView 和 UIPageControl 控 件 对 象 的 关 联 3. 通 过 代 码 实 现 自 动 轮 播 的 功 能 完 成 控 件 对 象 的 关 联 后, 就 可 以 通 过 代 码 加 载 图 片, 并 实 现 自 动 轮 播 的 功 能 了 进 入 ViewController.m 文 件, 在 viewdidload 方 法 中 完 成 相 对 的 功 能, 具 体 代 码 如 例 2-11 所 示 71
UISearchBar 介 绍 属 性 作 用 UIBarStyle barstyle 控 件 的 样 式 id delegate 设 置 控 件 的 委 托 NSString *text 控 件 上 面 的 显 示 的 文 字 NSString *prompt 显 示 在 顶 部 的 单 行 文
第 十 章 添 加 搜 索 学 习 目 标 通 过 学 习 本 章 学 习, 我 们 应 该 具 备 以 下 知 识 和 技 能 : 认 识 UISearchBar 使 用 UISearchBar 任 务 : 给 软 件 加 入 搜 索 功 能 这 次 我 们 来 学 习 一 下 如 何 添 加 搜 索, 在 iphone 中 通 讯 录 中, 搜 索 功 能 能 让 你 快 捷 地 找 到 对 应
More informationmvc
Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication
More informationUITextField属性.pages
UITextField 属 性 技 术 博 客 http://www.cnblogs.com/chenyilong/ 新 浪 微 博 http://weibo.com/luohanchenyilong 1. enablesreturnkeyautomatically 默 认 为 No, 如 果 设 置 为 Yes, 文 本 框 中 没 有 输 入 任 何 字 符 的 话, 右 下 角 的 返 回 按
More informationMicrosoft Word - Chap17.doc
iphone ipad 和 ipod Touch 最 酷 的 一 項 功 能 是 它 們 的 內 建 方 向 感 應 器, 這 個 微 小 的 裝 置 可 以 讓 ios 知 道 裝 置 被 持 握 的 方 式 以 及 是 否 在 移 動 ios 可 使 用 方 向 感 應 器 來 處 理 自 動 旋 轉, 而 許 多 遊 戲 也 都 使 用 它 做 為 控 制 機 制 此 外 它 也 可 以 用
More information主 讲 介 绍 : 张 曙 光 武 汉 大 学 计 算 机 学 院 电 话 : 13808694857 Email: 13808694857 @139.com dayi.whu.edu.cn 5 July 2013
第 7 讲 iphone 应 用 开 发 界 面 控 件 与 内 置 视 图 计 算 机 学 院 张 曙 光 主 讲 介 绍 : 张 曙 光 武 汉 大 学 计 算 机 学 院 电 话 : 13808694857 Email: 13808694857 @139.com dayi.whu.edu.cn 5 July 2013 本 讲 学 习 目 标 了 解 控 件 的 作 用 以 及 它 与 视 图
More informationMicrosoft Word - Learn Objective-C.doc
Learn Objective C http://cocoadevcentral.com/d/learn_objectivec/ Objective C Objective C Mac C Objective CC C Scott Stevenson [object method]; [object methodwithinput:input]; output = [object methodwithoutput];
More informationiPhone App Programming_2016_lecture8.key
ios 程序设计 (2016.3@UniTown) 第八讲 : 可视化控件的使用 (UIControls) 华南师范大学网络教育学院 2016-04-19 截 到 2016.2 ios 版本的占有率 Feb 2016 潘战生华南师范大学网络教育学院 http://www.gdou.com 潘战生华南师范大学网络教育学院 http://www.gdou.com 潘战生华南师范大学网络教育学院 http://www.gdou.com
More informationiPhone App Programming_2017_lecture8.key
ios 程序设计 (2017.9) 第八讲 : 可视化控件的使用 (UIControls) 华南师范大学网络教育学院 2017-11-07 截 到 2017.9 ios 版本的占有率 潘战生华南师范大学网络教育学院 http://www.gdou.com 潘战生华南师范大学网络教育学院 http://www.gdou.com 第七章 UI 控件 1. UISlider var value: Float
More information5-1 nav css 5-2
5 HTML CSS HTML CSS Ê Ê Ê Ê 5-1 nav css 5-2 5-1 5 5-1-1 5-01 css images 01 index.html 02 5-3 style.css css 03 CH5/5-01/images 04 images index.html style.css 05
More informationMicrosoft Word - 第3章.doc
第 3 章图表 在人口普查等统计信息时, 只有图或者表, 往往很难直观地展示统计信息的属性, 如时间性 数量性等 这时, 引进了新的概念 图表 最常见的图表有饼状图 柱状图 折线图等 本章将主要讲解关于图表的一些实例 实例 40 饼状图 实例描述 饼状图是一个划分为几个扇形的圆形统计图表, 用于描述量 频率或百分比之间的相对关系 在饼图中, 每个扇区的弧长 ( 以及圆心角和面积 ) 大小为其所表示的数量的比例
More informationiPhone App Programming_2016_lecture8.key
ios 程序设计 (2016.9) 第八讲 : 可视化控件的使用 (UIControls) 华南师范大学网络教育学院 2016-11-15 截 到 2016.2 ios 版本的占有率 Feb 2016 潘战生华南师范大学网络教育学院 http://www.gdou.com 潘战生华南师范大学网络教育学院 http://www.gdou.com 潘战生华南师范大学网络教育学院 http://www.gdou.com
More informationImportant Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO
Car DVD New GUI IR Flow User Manual V0.1 Jan 25, 2008 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com Important Notice SUNPLUS
More informationepub83-1
C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C
More informationobj-c_4.key
Objective-C Language Tutor : Michael Hello Obj-C #import int main(int argc, const char * argv []){ NSAutoreleasePool* pool = [[NSAutoreleasePool alloc ] init]; NSLog(@"hello obj-c");
More information108 第 二 章 102 2.1 使 用 UIAlertView 顯 示 提 示 問 題 你 想 要 以 提 示 (alert) 的 形 式 顯 示 一 個 訊 息 給 使 用 者 看, 這 可 以 用 來 請 他 們 確 認 一 個 動 作 詢 問 他 們 的 使 用 者 名 稱 (userna
第 二 章 實 作 控 制 器 與 視 圖 101 2.0 簡 介 所 有 的 ios 應 用 程 式 皆 使 用 Model-View-Controller( 或 稱 MVC) 架 構 從 架 構 上 來 看, model( 模 型 ) view( 視 圖 ) 與 controller( 控 制 器 ) 是 ios 應 用 程 式 主 要 的 三 個 元 件 其 中 的 model 是 應 用 程
More informationJunos Pulse Mobile Security R1 2012, Juniper Networks, Inc.
Junos Pulse Mobile Security 4.0 2012 6 R1 2012, Juniper Networks, Inc. Junos Pulse Mobile Security Juniper Networks, Inc. 1194 North Mathilda Avenue Sunnyvale, California 94089 408-745-2000 www.juniper.net
More informationCC213
: (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,
More informationuntitled
1 LinkButton LinkButton 連 Button Text Visible Click HyperLink HyperLink 來 立 連 Text ImageUrl ( ) NavigateUrl 連 Target 連 _blank _parent frameset _search _self 連 _top 例 sample2-a1 易 連 private void Page_Load(object
More information1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10
Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1
More informationPowerPoint Presentation
TOEFL Practice Online User Guide Revised September 2009 In This Guide General Tips for Using TOEFL Practice Online Directions for New Users Directions for Returning Users 2 General Tips To use TOEFL Practice
More informationINTRODUCTION TO COM.DOC
How About COM & ActiveX Control With Visual C++ 6.0 Author: Curtis CHOU mahler@ms16.hinet.net This document can be freely release and distribute without modify. ACTIVEX CONTROLS... 3 ACTIVEX... 3 MFC ACTIVEX
More informationMicrosoft PowerPoint - ch6 [相容模式]
UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner
More informationMicrosoft Word - 01.DOC
第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的
More informationuntitled
1 .NET 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Response 類 Write 料 Redirect URL Response.Write("!! ives!!"); Response.Redirect("WebForm2.aspx"); (1) (2) Web Form
More informationMicrosoft Word - 第3章.doc
Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck
More informationIBM Rational ClearQuest Client for Eclipse 1/ IBM Rational ClearQuest Client for Ecl
1/39 Balaji Krish,, IBM Nam LeIBM 2005 4 15 IBM Rational ClearQuest ClearQuest Eclipse Rational ClearQuest / Eclipse Clien Rational ClearQuest Rational ClearQuest Windows Web Rational ClearQuest Client
More information影視後製全攻略 Premiere Pro After Effects Encore 自序 Adobe Premiere Pro After Effects Encore 2008 Adobe CS Adobe CS5 Adobe CS4 Premiere Pro After Effect
自序 Adobe Premiere Pro After Effects Encore 2008 Adobe CS3 2010 Adobe CS5 Adobe CS4 Premiere Pro After Effects Encore 18 ii Tony Cathy 2010/8 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 iii Premiere
More information05 01 accordion UI containers 03 Accordion accordion UI accordion 54
jquery UI plugin Accordion 05 01 accordion UI containers 03 Accordion accordion UI accordion 54 05 jquery UI plugin 3-1
More informationMicrosoft Word - Chap 06.doc
視圖 圖形和圖像 本章說明如何在 iphone 上畫圖和顯示圖像 圖形和圖像是以視圖 (view) 為基礎, 所以我們首先說明視圖的基本概念 6.1 視圖 (View) iphone 手機上的視窗就是 UIWindow 類別的一個實體物件 ( 一個手機應用只有一個 UIWindow) 其中第一欄是狀態列, 包含時間 訊號強度等資訊 一個視窗內有多個物件, 比如 : 我們所增加的滑桿和文字資訊 ( 北京歡迎您
More informationMicrosoft Word - SupplyIT manual 3_cn_david.doc
MR PRICE Supply IT Lynette Rajiah 1 3 2 4 3 5 4 7 4.1 8 4.2 8 4.3 8 5 9 6 10 6.1 16 6.2 17 6.3 18 7 21 7.1 24 7.2 25 7.3 26 7.4 27 7.5 28 7.6 29 7.7 30 7.8 31 7.9 32 7.10 32 7.11 33 7.12 34 1 7.13 35 7.14
More informationcoverage2.ppt
Satellite Tool Kit STK/Coverage STK 82 0715 010-68745117 1 Coverage Definition Figure of Merit 2 STK Basic Grid Assets Interval Description 3 Grid Global Latitude Bounds Longitude Lines Custom Regions
More information新・解きながら学ぶJava
481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --
More information2_dvdr3380_97_CT_21221b.indd
64 65 66 ALL 3 67 a STANDBY-ON 2 a b c d e f g h i j k l b TIMER c SYSTEM-MENU d e SELECT f REC g. > h TOP MENU i ANGLE j RETURN k SUBTITLE l REC MODE 68 m n REC SOURCE o DISC-MENU p OK q EDIT r PLAYÉ
More information入學考試網上報名指南
入 學 考 試 網 上 報 名 指 南 On-line Application Guide for Admission Examination 16/01/2015 University of Macau Table of Contents Table of Contents... 1 A. 新 申 請 網 上 登 記 帳 戶 /Register for New Account... 2 B. 填
More informationMicrosoft Word - UserGuide_iOS_Offerwall_CN_2.9.0(20140616).docx
力 美 媒 体 主 ios 广 告 墙 SDK 使 用 说 明 SDK Version: limei_ios_sdk_2.9.0 2014-07 北 京 力 美 科 技 有 限 公 司 目 录 1. 用 户 注 册... 3 2. 获 取 广 告 位 ID... 3 3. 配 置 Framework 文 件... 3 4. 创 建 广 告 墙... 5 5. 积 分 操 作 方 法... 6 6.
More informationAL-M200 Series
NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel
More information(Microsoft Word - 1021203\246\346\254F\267|\263\370\254\366\277\375.doc)
高 雄 市 立 左 營 高 中 102 學 年 度 第 1 學 期 第 13 次 行 政 會 報 紀 錄 時 間 :102 年 12 月 3 日 ( 星 期 二 ) 下 午 14:00 地 點 : 忠 孝 二 樓 會 議 室 主 持 人 : 陳 校 長 良 傑 出 列 席 人 員 : 如 簽 到 單 記 錄 : 吳 書 瑋 秘 書 教 務 處 陳 主 任 輝 雄 : 一 為 利 於 研 習 資 訊
More information(Microsoft Word - \244p\273\241\273P\252\300\267|.doc)
98 學 年 度 第 2 學 期 課 程 學 習 心 得 報 告 課 程 名 稱 : 小 說 與 社 會 任 課 老 師 : 劉 怡 廷 姓 名 : 和 月 學 號 : 9811122E 系 級 : 大 傳 三 連 絡 電 話 : E-mail: 1. 書 寫 字 數 不 得 少 於 1200 字 2. 書 寫 格 式 :12 號 字 新 細 明 體 單 行 間 距 3. 請 勿 任 意 更 改 格
More informationp.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2.
2005-06 p.1 HTML HyperText Mark-up Language 1. HTML Logo, Pascal, C++, Java HTML 2. HTML (tag) 3. HTML 4. HTML 1. HTML 2. 3. FTP HTML HTML html 1. html html html cutehtmleasyhtml 2. wyswyg (What you see
More informationVB程序设计教程
高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处
More informationuntitled
1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override
More information(2) 廠 商 具 有 維 修 維 護 或 售 後 服 務 能 力 之 證 明 ;(3) 廠 商 具 有 製 造 供 應 或 承 做 能 力 之 證 明 ;(4) 具 有 相 當 人 力 之 證 明 屬 特 定 資 格 之 ㄧ 8.(3) 機 關 辦 理 預 算 金 額 為 新 台 幣 四 億 元
政 府 採 購 法 規 概 要 題 庫 最 後 更 新 日 期 :( 人 發 局 第 一 期 ) 2010/03/20 選 擇 題 : ( 答 案 ) 正 確 錯 誤 解 析 1.(3) 機 關 訂 定 招 標 文 件, 何 者 正 確?(1) 廠 商 履 行 契 約 所 必 須 具 備 之 財 務 商 業 或 技 術 資 格 條 件, 不 考 慮 廠 商 在 外 國 之 商 業 活 動 應 (2)
More information人 才 培 养 与 专 业 建 设 人 才 培 养 与 专 业 建 设 首 都 师 范 大 学 重 点 专 业 培 育 与 建 设 计 划 实 施 办 法 校 发 号 根 据 首 都 师 范 大 学 十 二 五 时 期 本 科 专 业 建 设 与 发 展 规 划 安 排 为 进 一 步 加 强 学 校 本 科 人 才 培 养 工 作 加 大 专 业 建 设 力 度 提 升 专 业 建 设 水 平
More informationXHTML width/height bdo a code href object charset codebase hreflang archive lang type alt dir name name xml:lang rel/rev align shape/coords hspace/vsp
XHTML CSS CSS CSS DOCTYPE Switch XHTML width/height bdo a code href object charset codebase hreflang archive lang type alt dir name name xml:lang rel/rev align shape/coords hspace/vspace big tabindex accesskey
More informationSerial ATA ( Nvidia nforce430)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A (6) Microsoft Win
Serial ATA ( Nvidia nforce430)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A... 11 (6) Microsoft Windows 2000... 14 Ác Åé å Serial ATA ( Nvidia nforce430)
More information/0/ "!!!!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " # $ % && $ $ $ $ ( $ $ ( $ ) % * ( * $ $ $ $ $ $ $ ( $ $ $ $ $ # ( $ $ ( $ $ $ ( $ $ $ $
"!!!!!!!!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " # $ /0/ "!!!!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " # $ % && $ $ $ $ ( $ $ ( $ ) % * ( * $ $ $
More informationuntitled
1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立
More information國家圖書館典藏電子全文
EAI EAI Middleware EAI 3.1 EAI EAI Client/Server Internet,www,Jav a 3.1 EAI Message Brokers -Data Transformation Business Rule XML XML 37 3.1 XML XML XML EAI XML 1. XML XML Java Script VB Script Active
More informationC/C++ - 字符输入输出和字符确认
C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,
More information目 录 CONTENTS 第 一 部 分 : 报 名 001 第 二 部 分 : 现 场 招 标 竞 购 标 的 物 介 绍 007 一 现 场 招 标 竞 购 标 的 物 008 1. 黄 金 组 合 广 告 项 目 009 2. 奥 运 会 广 告 项 目 015 3. 欧 洲 杯 广 告 项 目 015 4. 季 播 大 活 动 广 告 项 目 016 5. 春 节 套 装 广 告 项 目 017
More informationText 文字输入功能 , 使用者可自行定义文字 高度, 旋转角度 , 行距 , 字间距离 和 倾斜角度。
GerbTool Wise Software Solution, Inc. File New OPEN CLOSE Merge SAVE SAVE AS Page Setup Print Print PreView Print setup (,, IMPORT Gerber Wizard Gerber,Aperture Gerber Gerber, RS-274-D, RS-274-X, Fire9000
More informationF477
FrontPage & Flash 連 CSIE, NTU September 15, 2007 Outline September 15, 2007 Page 2 連 FrontPage September 15, 2007 Page 3 連 FTP Email FrontPage HTML tag September 15, 2007 Page 4 連 September
More information錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更
AX5000 Version 1.0 2006 年 9 錄...1 說...2 說...3...4 說...5 六...6 6.1 率...7 6.2 POST PAY...8 6.3 PREPAY DEPOSIT...9 6.4...10 6.5...11 更...12...12 LCD IC LED Flash 更 兩 RJ11 ( ) DC ON OFF ON 狀 狀 更 OFF 復 狀 說
More informationMATLAB介紹
MATLAB 2008a GUIDE GUIDE GUIDE Graphic User Interface Design Environment Graphical User Interface GUI GUIDE 令 拉 見 GUIDE 不 GUI GUI 行 率 GUIDE MATLAB 7.x GUIDE 令 guide GUIDE GUIDE Create New GUI Blank GUI
More informationWindows XP
Windows XP What is Windows XP Windows is an Operating System An Operating System is the program that controls the hardware of your computer, and gives you an interface that allows you and other programs
More information(Microsoft Word - Motion Program \270\305\264\272\276\363 \307\245\301\366 \271\327 \270\361\302\367.doc)
: TBFAT-G5MP-MN004-11 1 GX Series PLC Program Manual 2 GX Series PLC Program Manual Contents Contents...3 1... 1-1 1.1... 1-2 1.2... 1-3 1.2.1... 1-3 1.2.2... 1-4 1.2.3... 1-4 1.2.4... 1-6 1.3... 1-7 1.3.1...
More informationiOS Map SDK开发指南
ios 地图 SDK 开发者指南 V1.00 ios 地图 SDK 简介...1 1 概述...1 1.1 文档范围...1 1.2 版本兼容性...1 2 SDK 使用工程配置... 1 2.1 新建工程...1 2.2 导入 SDK 工程配置...2 2.3 导入 libkimapkit.bundle 资源文件... 2 2.4 导入系统库...3 2.5 环境配置...4 3 地图显示...4
More information2007
2007 年 上 半 年 软 件 评 测 师 考 试 浅 析 作 者 : 陈 嘉 祥 方 耀 公 司 : 广 东 亿 迅 科 技 有 限 公 司 ( 质 量 管 理 部 ) 1 简 介 1.1 目 的 本 文 章 主 要 介 绍 软 件 评 测 师 考 试 的 范 围 内 容 以 及 其 重 要 性, 还 有 相 关 的 试 题 分 析 1.2 适 用 范 围 有 意 参 与 或 将 来 有 意 参
More informationebook71-13
13 I S P Internet 13. 2. 1 k p p p P P P 13. 2. 2 1 3. 2. 3 k p p p 1 3. 2. 4 l i n u x c o n f P P P 13. 2. 5 p p p s e t u p 13. 2. 6 p p p s e t u p P P P 13. 2. 7 1 3. 2. 8 C a l d e r a G U I 13.
More informationMicrosoft Word - template.doc
HGC efax Service User Guide I. Getting Started Page 1 II. Fax Forward Page 2 4 III. Web Viewing Page 5 7 IV. General Management Page 8 12 V. Help Desk Page 13 VI. Logout Page 13 Page 0 I. Getting Started
More informationMicrosoft Word - 201110.doc
2011 年 10 月 信 徒 交 通 月 刊 目 錄 一 本 期 目 錄 編 輯 室 1 二 牧 者 的 話 教 會 轉 化 -- 得 到 更 新 皮 袋 衣 立 凡 2 三 講 章 精 華 清 潔 的 心 思 -- 除 去 論 斷 講 員 衣 立 凡 / 賴 美 如 整 理 4 清 潔 的 心 思 -- 除 去 情 慾 講 員 葉 志 偉 / 林 慶 如 整 理 9 四 精 選 文 章 等 候
More informationiPhone App Programming_2014_lecture6
ios 程序设计 (2014.2) 表视图控制器 第六讲 : (UITableViewController) 及标签条视图控制器 (UITabBarController) 华南师范大学网络教育学院 2014-04-01 第五章表视图控制器 ( Basic SubTitle 分节 (Sectioned) 单元定制 表视图界面 : 表视图界面 : 显示可滚动 可选择的数据列表 表视图界面 : 显示可滚动
More information2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF
Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific
More informationSerial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10
Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Ác Åé å Serial ATA ( Silicon Image SiI3114) S A T A (1) SATA (2)
More information四川省普通高等学校
四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9
More information06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b
06 01 action JavaScript action jquery jquery AJAX 04 4-1 CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS background-color camel-cased DOM backgroundcolor.css()
More informationCHAPTER 1
CHAPTER 1 1-1 System Development Life Cycle; SDLC SDLC Waterfall Model Shelly 1995 1. Preliminary Investigation 2. System Analysis 3. System Design 4. System Development 5. System Implementation and Evaluation
More information概述
OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3
More informationuntitled
Sansa Fuze TM MP3 1-866-SANDISK (726-3475) www.sandisk.com/techsupport www.sandisk.com/sansa Fuze-8UM-CHS ... 3... 4 Sansa Fuze TM... 6... 6... 7... 7 Sansa Fuze... 7... 8... 9... 9... 10... 11... 11...
More information1. 2. Flex Adobe 3.
1. 2. Flex Adobe 3. Flex Adobe Flex Flex Web Flex Flex Flex Adobe Flash Player 9 /rich Internet applications/ria Flex 1. 2. 3. 4. 5. 6. SWF Flash Player Flex 1. Flex framework Adobe Flex 2 framework RIA
More information6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM
CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986
More information麻 省 理 工 學 院 是 在 西 元 2013 年 12 月 3 日 推 出 MIT App Inventor 2 網 站, 提 供 免 費 的 雲 端 服 務, 使 用 者 可 以 透 過 瀏 覽 器 來 開 發 Android 裝 置 應 用 程 式, 該 網 站 的 網 址 為 : http
資 訊 學 科 中 心 6 月 份 電 子 報 用 MIT App Inventor2 程 式 拼 圖 來 開 發 Android 裝 置 應 用 程 式 李 啟 龍 學 習 Android 裝 置 程 式 設 計, 可 以 不 必 學 習 較 為 艱 澀 的 Java 語 法, 只 要 使 用 拼 圖 模 式 來 組 合 程 式, 就 可 以 完 成 Android 裝 置 的 應 用 程 式 MIT
More informationBlackBerry Classic Smartphone-用户指南
BlackBerry Classic Smartphone 版 本 : 10.3.1 用 户 指 南 发 布 日 期 : 2015-03-02 SWD-20150302151727377 目 录 设 置 和 基 本 知 识... 6 当 前 版 本 的 新 特 色...6 BlackBerry 智 能 手 机 简 介... 14 设 备 一 览... 14 BlackBerry Classic 键...16
More informationuntitled
1 .NET sln csproj dll cs aspx 說 料 料 利 來 料 ( 來 ) 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Click 滑 料 Response 列 料 Response HttpResponse 類 Write 料 Redirect URL Response.Write("!!
More informationuntitled
1 Outline 流 ( ) 流 ( ) 流 ( ) 流 ( ) 流 ( ) 狀 流 ( ) 利 來 行流 if () 立 行 ; else 不 立 行 ; 例 sample2-a1 (1) 列 // 料 Console.Write(""); string name = Console.ReadLine(); Console.WriteLine(" " + name + "!!"); 例 sample2-a1
More informationMicrosoft Word - HSK使用手册.doc
HSK / New HSK Online Mock Test/Practices Student User Manual Table of contents New User... 2 1.1 Register... 2 1.2 Login... 3 1.3 Homepage... 4 Free Test... 4 2.1 Start... 5 2.2 Results... 6 Mock Test...
More information什么是 view? 我们在前 面创建过 UIButton,UILabel 等, 但是究竟什么是 view? 一个 view 是 UIView 或者它的某 一 子类的实例 view 知道如何把它 自 己绘制到应 用程序窗 口上 ( 一个 UIWindow 的实例 ) view 存在于 view 的层次
子类化 UIView 和 UIScrollView 范圣刚,princetoad@gmail.com,www.tfan.org 什么是 view? 我们在前 面创建过 UIButton,UILabel 等, 但是究竟什么是 view? 一个 view 是 UIView 或者它的某 一 子类的实例 view 知道如何把它 自 己绘制到应 用程序窗 口上 ( 一个 UIWindow 的实例 ) view
More informationCA-C750К
1 3 3 4 PC 4 USB 5 5 6 8 9 11 mediasync Manager?...13 mediasync Manager 15 25 38 39 41 41 DRM...44 Image Manager...44 47 49 49 50 50 51 51 51 52 / 52 A-B 53 MP3 53 /FM 54 FM 55 FM 55 BMP56 56 57 57 58
More information一 浦 发 手 机 银 行 ( 企 业 版 ) 客 户 端 服 务 简 介 浦 发 银 行 率 先 在 同 业 中 面 向 企 业 客 户 推 出 了 多 版 本 的 手 机 银 行 浦 发 手 机 银 行 ( 企 业 版 ) 提 供 iphone Android ipad Windows Phon
浦 发 手 机 银 行 ( 企 业 版 )iphone 客 户 端 服 务 使 用 指 南 一 浦 发 手 机 银 行 ( 企 业 版 ) 客 户 端 服 务 简 介... 2 二 浦 发 手 机 银 行 ( 企 业 版 )IPHONE 客 户 端 安 装 指 引... 3 1 手 机 银 行 ( 企 业 版 )IPHONE 客 户 端 软 件 安 装 包 的 获 取... 3 2 手 机 银 行
More information目 錄 壹 青 輔 會 結 案 附 件 貳 活 動 計 劃 書 參 執 行 內 容 一 教 學 內 容 二 與 當 地 教 師 教 學 交 流 三 服 務 執 行 進 度 肆 執 行 成 效 一 教 學 課 程 二 與 當 地 教 師 教 學 交 流 三 服 務 滿 意 度 調 查 伍 服 務 檢
2 0 1 0 年 靜 宜 青 年 國 際 志 工 泰 北 服 務 成 果 報 告 指 導 單 位 : 行 政 院 青 年 輔 導 委 員 會 僑 務 委 員 會 主 辦 單 位 : 靜 宜 大 學 服 務 學 習 發 展 中 心 協 力 單 位 : 靜 宜 大 學 師 資 培 育 中 心 財 團 法 人 台 灣 明 愛 文 教 基 金 會 中 華 民 國 九 十 九 年 九 月 二 十 四 日 目
More information致遠管理學院法規提案單
台 灣 首 府 大 學 101 學 年 度 第 2 學 期 第 1 次 行 政 會 議 會 議 議 程 會 議 資 料 請 先 行 參 閱 為 方 便 討 論, 請 於 開 會 當 日 攜 帶 與 會, 謝 謝 您 的 合 作 若 不 克 與 會, 請 於 事 前 告 知 承 辦 人 ( 分 機 215 詹 琬 渝 ) 會 議 時 間 : 民 國 102 年 2 月 6 日 ( 星 期 三 ) 下
More information视图控制器 (View Controllers)
视图控制器 (View Controllers) 范圣刚,princetoad@gmail.com, www.tfan.org Quiz 和 QuizViewController 回顾 在第 一个 session 的 Quiz 应 用程序中, 我们把所有的代码都写在 QuizViewController 类中 这个类 的 一个实例是 Quiz 应 用的控制器 它有指向屏幕上的 labels 的指针,
More informationEpson
WH / MS CMP0087-00 TC WH/MS EPSON EPSON EXCEED YOUR VISION EXCEED YOUR VISION Seiko Corporation Microsoft and Windows are registered trademarks of Microsoft Corporation. Mac and Mac OS are registered trademarks
More information(CIP) Web /,. :,2005. 1 ISBN 7 81058 782 X.W............T P393.4 CIP (2004) 118797 Web ( 99 200436) ( http:/ / www.shangdapress.com 66135110) : * 787
Web (CIP) Web /,. :,2005. 1 ISBN 7 81058 782 X.W............T P393.4 CIP (2004) 118797 Web ( 99 200436) ( http:/ / www.shangdapress.com 66135110) : * 787 1092 1/ 16 30.75 748 2005 1 1 2005 1 1 : 1 3 100
More information号 Objective-C 基 础 OS X 系 统 简 介 Xcode 简 介 Objective-C 概 述 HelloWorld 基 础 数 据 类 型 2 Objective-C 面 向 对 象 编 程 Objective-C 类 的 定 义 Objective-C 对 象 的 创 建 Ob
附 件 一 课 程 大 纲 Objective-C 语 言 课 程 预 期 目 标 精 通 Objective-C 语 言, 能 熟 练 运 用 Objective-C 语 言 编 写 ios 应 用 程 序 并 解 决 常 见 问 题 迅 速 掌 握 Objective-C 开 发 技 能, 积 累 Objective-C 开 发 经 验, 掌 握 常 用 开 发 调 试 技 巧, 可 以 迅 速
More informationuntitled
1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart
More information入 指 令 如 : 鍵 盤 鼠 標 多 點 觸 控 重 力 感 應 陀 螺 儀 等 4. 圖 形 用 戶 接 口 掌 握 引 擎 API 中 GUI 與 GUILayout 類 中 方 法 和 變 量 的 使 用, 能 夠 通 過 GUI Skin 為 應 用 的 界 面 定 制 不 同 風 格 主
Unity 專 業 能 力 認 證 (Unity Certified Professional) 應 考 須 知 壹 閱 讀 大 綱 主 題 一 : 數 字 媒 體 基 礎 知 識 1. 2D 圖 形 知 識 熟 悉 常 用 位 圖 數 據 的 結 構 和 格 式 其 中 包 括 像 素 數 據 顏 色 的 值 與 通 道 的 概 念 2. 3D 圖 形 學 相 關 知 識 a) 理 解 向 量 的
More information安友医疗科技(武汉)有限责任公司
武 汉 楚 才 云 科 技 有 限 公 司 武 汉 楚 才 云 科 技 有 限 公 司 成 立 于 2015 年 3 月, 主 营 方 向 为 面 向 K12 的 线 上 线 下 互 动 教 育 信 息 服 务 平 台, 主 营 产 品 包 括 新 国 学 教 育 O2O 托 管 服 务 免 费 家 校 通 在 线 作 业 辅 导 及 家 教 推 介 基 于 地 理 位 置 的 培 优 辅 导 教
More informationC/C++语言 - 运算符、表达式和语句
C/C++ Table of contents 1. 2. 3. 4. C C++ 5. 6. 7. 1 i // shoe1.c: # include # define ADJUST 7. 64 # define SCALE 0. 325 int main ( void ) { double shoe, foot ; shoe = 9. 0; foot = SCALE * shoe
More informationCDWA Mapping. 22 Dublin Core Mapping
(version 0.23) 1 3... 3 3 3 5 7 10 22 CDWA Mapping. 22 Dublin Core Mapping. 24 26 28 30 33 2 3 X version 0.2 ( ) 4 Int VarcharText byte byte byte Id Int 10 Management Main Code Varchar 30 Code Original
More informationChapter 9: Objects and Classes
What is a JavaBean? JavaBean Java JavaBean Java JavaBean JComponent tooltiptext font background foreground doublebuffered border preferredsize minimumsize maximumsize JButton. Swing JButton JButton() JButton(String
More informationSerial ATA ( nvidia nforce4 Ultra/SLI)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A (6) Micro
Serial ATA ( nvidia nforce4 Ultra/SLI)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 6 (4) S A T A... 9 (5) S A T A... 11 (6) Microsoft Windows 2000... 14 Ác Åé å Serial ATA ( nvidia
More informationepub 94-3
3 A u t o C A D L AY E R L I N E T Y P E O S N A P S T Y L E X R E F - AutoLISP Object ARX A u t o C A D D C L A u t o C A D A u t o d e s k P D B D C L P D B D C L D C L 3.1 Wi n d o w s A u t o C A D
More information<4D6963726F736F667420576F7264202D203120BBA5C1AACDF8BBF9B4A1B1EAD7BC2E646F63>
概 要 本 标 准 是 中 国 广 告 协 会 的 互 动 网 络 委 员 会 主 持, 行 业 互 联 网 企 业 广 告 公 司 广 告 主 第 三 方 数 据 机 构 共 同 参 与 研 制 完 成 本 标 准 已 经 通 过 了 小 范 围 测 试 和 专 业 论 证, 并 根 据 行 业 和 相 关 部 门 的 反 馈 意 见 进 行 了 修 改, 具 备 了 行 业 试 行 的 基 础,
More information(京)新登字063号
教 育 部 职 业 教 育 与 成 人 教 育 司 推 荐 教 材 Java 程 序 设 计 教 程 ( 第 二 版 ) 沈 大 林 主 编 沈 昕 肖 柠 朴 曾 昊 等 编 著 内 容 简 介 Java 是 由 美 国 SUN 公 司 开 发 的 一 种 功 能 强 大 的, 具 有 简 单 面 向 对 象 分 布 式 可 移 植 等 性 能 的 多 线 程 动 态 计 算 机 编 程 语 言
More informationuntitled
0000137925 REV 1.0 ... 4... 5... 6... 7... 8... 9... 11... 12... 13... 14... 15... 17... 18... 20... 22 ( 1)... 25... 26 ( 2)... 28 \ 1 ( 2A)... 29 \ 2 ( 2B)... 30 SSR ( 2C)... 31 \ ( 2D)... 32 \ ( 3A)...
More informationBus Hound 5
Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus
More informationC/C++程序设计 - 字符串与格式化输入/输出
C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int
More informationOpen topic Bellman-Ford算法与负环
Open topic Bellman-Ford 2018 11 5 171860508@smail.nju.edu.cn 1/15 Contents 1. G s BF 2. BF 3. BF 2/15 BF G Bellman-Ford false 3/15 BF G Bellman-Ford false G c = v 0, v 1,..., v k (v 0 = v k ) k w(v i 1,
More informationFY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
More information