斯坦福公开课Swift笔记6:画图和手势(UIBezierPat

2020-07-08  本文已影响0人  CyberDunk1997

https://www.bilibili.com/video/BV1rb411C7eN?p=27

1. UIGraphicsGetCurrentContext & UIBezierPath

image.png

2 自定义NSAttributedString

自定义NSAttributedString

3 setNeedsDisplay & setNeedsLayout

setNeedsDisplay

4 数组中reduce的使用

       let festivals = ["NewYear",
                         "SpringFestival",
                         "LabourDay",
                         "Mid-AutumnFestival",
                         "NationalDay"]
        // 将数组中的每个字符串用”、“拼接
        let str = festivals.reduce("$") { (str1, str2) -> String in
            return str1 == "$" ? str2 : str1 + "、" + str2
        }
        print("str: \(str)")
        // str: NewYear、SpringFestival、LabourDay、Mid-AutumnFestival、NationalDay
        // 返回结果是拼接起来的字符串
        
        // 我们打印一下str1和str2
        let strL = festivals.reduce("$") { (str1, str2) -> String in
            print("str1: \(str1)")
            print("str2: \(str2)")
            return str1 == "$" ? str2 : str1 + "、" + str2
        }
        print("strL: \(strL)")
        /*
         结果:
         str1: $
         str2: NewYear
         str1: NewYear
         str2: SpringFestival
         str1: NewYear、SpringFestival
         str2: LabourDay
         str1: NewYear、SpringFestival、LabourDay
         str2: Mid-AutumnFestival
         str1: NewYear、SpringFestival、LabourDay、Mid-AutumnFestival
         str2: NationalDay
         strL: NewYear、SpringFestival、LabourDay、Mid-AutumnFestival、NationalDay
         */
// 案例二
        /*
         问题描述:
         有一份人员名单,要从这些名单中找出来自”北京“的年龄总和.
         */
        
        let persons = [
            ["姓名": "李二", "性别":"男", "年龄":"23", "籍贯":"山西", "职业":"程序员"],
            ["姓名": "张倩", "性别":"女", "年龄":"20", "籍贯":"北京", "职业":"体操运动员"],
            ["姓名": "王淼", "性别":"男", "年龄":"30", "籍贯":"四川", "职业":"饭店老板"],
            ["姓名": "曾无", "性别":"男", "年龄":"52", "籍贯":"北京", "职业":"公务员"],
            ["姓名": "梅秉", "性别":"女", "年龄":"35", "籍贯":"北京", "职业":"医生"]
        ]
        let age = persons.reduce(0) { (average, dict) -> Int in
            print("average: \(average)")
            print("dict: \(dict)")
            var ages = average
            if dict["籍贯"] == "北京" {
                if let str = dict["年龄"],
                   let tempAge: Int = Int(str) {
                     ages = ages + tempAge
                }
            }
            return ages
        }
        print("age: \(age)")
        
        /*
         打印结果:
         average: 0
         dict: ["年龄": "23", "籍贯": "山西", "职业": "程序员", "性别": "男", "姓名": "李二"]
         average: 0
         dict: ["年龄": "20", "籍贯": "北京", "职业": "体操运动员", "性别": "女", "姓名": "张倩"]
         average: 20
         dict: ["年龄": "30", "籍贯": "四川", "职业": "饭店老板", "性别": "男", "姓名": "王淼"]
         average: 20
         dict: ["年龄": "52", "籍贯": "北京", "职业": "公务员", "性别": "男", "姓名": "曾无"]
         average: 72
         dict: ["年龄": "35", "籍贯": "北京", "职业": "医生", "性别": "女", "姓名": "梅秉"]
         age: 107
         */

5 @IBDesignable & @IBInspectable

@IBDesignable .png image.png @IBInspectable.png

6 Gesture


Gesture
image.png
上一篇 下一篇

猜你喜欢

热点阅读