iOS 11开发斯坦福(Stanford)第一课

import UIKit

class 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值