博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 11开发斯坦福(Stanford)第一课
阅读量:6040 次
发布时间:2019-06-20

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

import UIKitclass ViewController: UIViewController {    var flipcount = 0{        didSet{            FlipCount.text = "FlipCount:\(flipcount)"        }//属性观察器    }        @IBOutlet weak var FlipCount: UILabel!        @IBOutlet var cardButton: [UIButton]!        var emojiChoice = ["?","?","☎️","?"]//数组        @IBAction func TouchCard(_ sender: UIButton) {        flipcount += 1        if let cardNum = cardButton.index(of: sender){            Flipcard(WithEmoji: emojiChoice[cardNum], on: sender)        }else{            print("Chosen Card is not in CardButton.")        }//option,如何处理option,变量与常量,button,uilebal//如何关联outlet outlet collection,uilebal            }          func Flipcard(WithEmoji emoji:String,on button:UIButton)  {        if button.currentTitle == emoji{            button.setTitle("", for:UIControlState.normal)            button.backgroundColor=#colorLiteral(red: 1, green: 0.5763723254, blue: 0, alpha: 1)        }        else{            button.setTitle(emoji,for:UIControlState.normal)            button.backgroundColor=#colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1)        }//external name,internal name,option键,修改变量cmd,color    }}复制代码

上面为第一课总的程序,实现的结果就是,有四张按钮做的卡片,点击卡片,卡片进行反转。 设置了一个单一的页面的程序,将我们的程序都放在了class ViewController中,

class ViewController: UIViewController {}复制代码

页面中放置的元素有四张button卡片,还有一个label的计数器

定义了一个变量来设置翻转的次数,并用到一个知识,属性观察器didSet,属性观察器的意思就是每当我们设置的flipcount变量变化的时候,对应的将FlipCount.text进行更新。

var flipcount = 0{        didSet{            FlipCount.text = "FlipCount:\(flipcount)"        }//属性观察器    }复制代码

这边定义两个控件,一个是FlipCount,一个是cardButton,一个是UILabel,一个是UIButton,直接将storyBoard中的文件按住cmd拖拽到ViewController.swift中并将两个都设置为outlet,并定义了一个数组,数组中放置的是emoji的表情。

@IBOutlet weak var FlipCount: UILabel!  @IBOutlet var cardButton: [UIButton]!  var emojiChoice = ["?","?","☎️","?"]//数组复制代码

下面的程序定义了一个函数TouchCard这个函数用来定义点击卡片后悔发生什么。点击卡片后flipcount会自增1,这里还有个注意点是option类型,如果所按得卡片是cardButton中的,那么就翻转卡片,如果不是,那么久打印出Chosen Card is not in CardButton.

@IBAction func TouchCard(_ sender: UIButton) {        flipcount += 1        if let cardNum = cardButton.index(of: sender){            Flipcard(WithEmoji: emojiChoice[cardNum], on: sender)        }else{            print("Chosen Card is not in CardButton.")        }//option,如何处理option,变量与常量,button,uilebal//如何关联outlet outlet collection,uilebal            }复制代码

下面的是Flipcard函数,这个函数的意思就是如果button.currentTitle是emoji这里的emoji是调用的时候传入的参数emojiChoice[cardNum],那么设置为空,并将背景颜色改变,否则就将title设置为emoji,并改变背景颜色。这里有几个知识点:

  1. Flipcard(WithEmoji emoji:String,on button:UIButton) 中的WithEmojionexternal nameemojibuttoninternal name
  2. 按住option键,可以看到参数函数的返回值,定义,类型等信息。
  3. 按住cmd键,可以对参数进行定义跳转还有rename等操作
  4. 输入color可以进行直接的颜色选择,类似于 #colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1)
func Flipcard(WithEmoji emoji:String,on button:UIButton)  {      if button.currentTitle == emoji{          button.setTitle("", for:UIControlState.normal)          button.backgroundColor=#colorLiteral(red: 1, green: 0.5763723254, blue: 0, alpha: 1)      }      else{          button.setTitle(emoji,for:UIControlState.normal)          button.backgroundColor=#colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1)      }//external name,internal name,option键,修改变量cmd,color  }复制代码

转载于:https://juejin.im/post/5aeea931f265da0ba0630cf5

你可能感兴趣的文章
foreach遍历打印表格
查看>>
Oracle笔记(中) 多表查询
查看>>
Delphi 中的 XMLDocument 类详解(5) - 获取元素内容
查看>>
差异分析定位Ring 3保护模块
查看>>
2013年7月12日“修复 Migration 测试发现的 Bug”
查看>>
vim文本编辑器详解
查看>>
学习vue中遇到的报错,特此记录下来
查看>>
CentOS7 编译安装 Mariadb
查看>>
32位系统和64位系统的选择
查看>>
01配置管理过程指南
查看>>
jstl格式化时间
查看>>
一则关于运算符的小例
查看>>
centos7 ambari2.6.1.5+hdp2.6.4.0 大数据集群安装部署
查看>>
cronexpression 详解
查看>>
一周小程序学习 第1天
查看>>
小孩的linux
查看>>
SpringMVC、MyBatis声明式事务管理
查看>>
开发者详解:端游及手游服务端的常用架构
查看>>
JavaScript History对象
查看>>
在 Windows 下安装 Oracle 11g XE (Express Edition)
查看>>