博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[翻译练习] 多 Outlet 创建教程
阅读量:5739 次
发布时间:2019-06-18

本文共 1885 字,大约阅读时间需要 6 分钟。

译自:


为对象创建 Outlet 是比较费时费力的一件事情。多个对象共享相同的 Outlet 也是可能的。在本教程中我们将会根据按钮的 tag 值来创建多个 Outlet。本教程使用 Xcode 7.2 作为开发工具,使用 Swift 2.1 和 iOS 9 进行构建。

打开 Xcode 并创建一个新的 Single View Application。Product Name 项填写 IOS9MultipleOutletsTutorial,然后用你自己惯用的方式填写 Organization Name 和 Organization Identifier。Language 项选择 Swift,并且确保 Devices 项选择并且只选择了 iPhone。

打开 StoryBoard 并且从 Object Library 拖一个按钮到主视图的左上方。打开 Attribute Inspector(属性检查器)并将 View 中的 Tag 设为 10。

复制此按钮,并将复制得到的按钮放置于主视图的右上角,在第一个按钮的旁边,该按钮将和第一个按钮具有相同的标签值。 接下来,从 Object Library 中拖出另一个按钮到主视图中,将该按钮放在左上角按钮的下面。选中这个按钮并且打开 Attribute Inspector,将 View 中的 Tag 设为 20。然后再次复制刚添加的这个按钮并将复制得到的按钮放在刚添加的按钮的右方。到这里 Storyboard 应该是如下图所示的样子:

选中主视图然后点击 Interface Builder 右下角的 Resolve Auto Layout Issues 按钮。选择 All Views 中的 Reset to Suggested Constraint 这一选项。

打开 ViewController.swift 文件并将 viewDidLoad 方法改为如下代码块所示:

override func viewDidLoad() {    super.viewDidLoad()    // Do any additional setup after loading the view, typically from a nib.    for subview in view.subviews where subview.tag == 10 {        let button = subview as! UIButton        button.addTarget(self, action: "changeColorRed:", forControlEvents: .TouchUpInside)    }            for subview in view.subviews where subview.tag == 20 {        let button = subview as! UIButton        button.addTarget(self, action: "changeColorGreen:", forControlEvents: .TouchUpInside)    }}复制代码

这里的 subview 属性可以用于遍历主视图的子视图。每个按钮都根据 tag 值的不同添加了一个相应的 target。接下来,实现 target 方法:

func changeColorRed(sender: AnyObject) {    let button: UIButton = sender as! UIButton    button.tintColor = UIColor.redColor()}    func changeColorGreen(sender: AnyObject) {    let button: UIButton = sender as! UIButton    button.tintColor = UIColor.greenColor()}复制代码

当按钮被选中时按钮的颜色会改变。__构建然后运行__项目,接下来点击按钮来更改颜色。

你可以从 ioscreator 的 仓库下载 IOS9MultipleOutletsTutorial 的源代码。


如有任何知识产权、版权问题或理论错误,还请指正。

https://juejin.im/post/5a3215a2f265da431a43358b
转载请注明原作者及以上信息。

你可能感兴趣的文章
[LeetCode]22.Generate Parentheses
查看>>
计算A/B Test需要的样本量
查看>>
二叉树前序中序后序遍历的非递归方法
查看>>
mysql 行转列列转行
查看>>
《设计模式系列》---桥接模式
查看>>
[Unity3d]Shader 着色器 学习前了解知识
查看>>
Redrain duilib中事件委托存在的问题
查看>>
字符串的简单操作
查看>>
C#新功能--命名参数与可选参数
查看>>
strtok和strtok_r
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
web.xml中<load-on-start>n</load-on-satrt>作用
查看>>
【算法】CRF
查看>>
windows 8 微软拼音输入法
查看>>
Windows UI风格的设计(7)
查看>>
SQL中使用WITH AS提高性能 使用公用表表达式(CTE)简化嵌套SQL
查看>>
oracle 强行杀掉一个用户连接
查看>>
Git提交本地库代码到远程服务器的操作
查看>>
mysql中主外键关系
查看>>
我的友情链接
查看>>