美文网首页
swift第二天

swift第二天

作者: Alexander | 来源:发表于2017-03-21 23:55 被阅读53次

前言

今天的swift小练习比较简单, 主要目的是如何快速熟悉storyboard拖线后的代码风格. 下面我们来看看运行效果, 通过代码, 我们看看能从中领悟到什么?
  • 运行效果


    day-02
  • 我们再来看看storyboard

storyboard
  • 在来看看代码

import UIKit
import Social


class ViewController: UIViewController {

    @IBOutlet weak var nameTextFiled: UITextField!
    @IBOutlet weak var genderSegControl: UISegmentedControl!
    @IBOutlet weak var salaryLabel: UILabel!
    @IBOutlet weak var straightSwitch: UISwitch!
    @IBOutlet weak var workTextFiled: UITextField!
    @IBOutlet weak var birthdayPicker: UIDatePicker!

    @IBAction func salaryHandler(_ sender: Any) {
    
        // 点击这里的要求:  拖动Slider 后面的工资就会改变
        let slider = sender as! UISlider
        
        // 获取slider的当前值:
        let i = Int(slider.value)
        
        // 赋值
        salaryLabel.text = "¥\(i)K"
    }
    
    @IBAction func tweetButtonOnClicked(_ sender: Any) {
        // 判断几个输入框是否为空, 如果为空, 那么直接返回
        if (nameTextFiled.text == "" ||
            workTextFiled.text == "" ||
            salaryLabel.text == "") {
            
            showAlert("Info Miss", message: "Please fill out the form", buttonTitle: "Ok")
            return
        }
        
        let name: String! = nameTextFiled.text
        let work: String! = workTextFiled.text
        let salary: String! = salaryLabel.text
        
        // get age
        let gregorian = Calendar(identifier: Calendar.Identifier.gregorian)
        let now = Date()
        let components = (gregorian as NSCalendar?)?.components(NSCalendar.Unit.year, from: birthdayPicker.date, to: now, options: [])
        let age:Int! = components?.year
        
        var interestedIn:String! = "Women"
        if (genderSegControl.selectedSegmentIndex == 0 && !straightSwitch.isOn) {
            interestedIn = "Men"
        }
        if (genderSegControl.selectedSegmentIndex == 1 && straightSwitch.isOn ) {
            interestedIn = "Women"
        }
        
        let tweet = "Hi, I am \(name!). As a \(age!)-year-old \(work!) earning \(salary!)/year, I am interested in \(interestedIn!). Feel free to contact me!"
        
        tweetSLCVC(tweet)
    }
    
    fileprivate func tweetSLCVC(_ tweet: String) {
        
        if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeTwitter){
            let twitterController:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
            twitterController.setInitialText(tweet)
            self.present(twitterController, animated: true, completion: nil)
        } else {
            showAlert("Twitter Unavailable", message: "Please configure your twitter account on device", buttonTitle: "Ok")
        }
    }
    
    // MARK: - 自定义弹框
    fileprivate func showAlert(_ title: String, message: String, buttonTitle: String) {
    
        let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: buttonTitle, style: .default, handler: nil))
       self.present(alert, animated: true, completion: nil)
    }
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesBegan(touches, with: event)
        
        view.endEditing(true)
    }

从代码中学到一下几点
1, fileprivate和private的区别: 两者都是关键字, 并且都是修饰私有属性或者私有方法.但是他们之间的区别就是fileprivate修饰的属性或者方法子类是不能访问, 但是private修饰的属性和方法,子类是可以访问的.
2, 如何实现自定义一个简单的弹框
3, 苹果建议我们将多余的代码或者说冗余的代码删除掉, 只需要留下用到的代码即可
4, 注意强制转换的写法, 拼接的写法

总结
不积跬步无以至千里, 不能好高骛远. 代码虽然简单, 任然坚持记录笔记的原因是想养成一个很好的习惯. 不要因简单就忽视它, 也不要因困难而害怕它.

相关文章

  • swift学习第二天

    今天是学习swift的第二天,主要讲的是OC代码迁移到swift当中 一.懒加载格式:lazy var变量名:变量...

  • Swift3.0更新之各种坑

    长期更新,记录从Swift2.3迁移到Swift3.0苹果公司给的大坑。 中秋节第二天,打开电脑,马丹,Xcode...

  • iOS 12 开发者笔记 @WWDC 18, Day 2

    WWDC 第二天,为大家带来 What's new in Swift 以及 What's new in Cocoa...

  • swift -第二天

    一 : 字符串的使用 : 1>字符串的定义 1.1 不可变字符串的定义 1.2 可变字符串的定义 2>获取字符串的...

  • swift第二天

    前言 今天的swift小练习比较简单, 主要目的是如何快速熟悉storyboard拖线后的代码风格. 下面我们来看...

  • swift - 第二天

    所有的属性值、成员变量都必须初始化 view连接到Controller中的属性,带了 ‘ ! ’ 则不用初始化 ...

  • Swift第二天

    接着Swift初见 自己是基于Object-C语言的iOS开发者,Swift与Object的语法虽然不同,但是在i...

  • 中文版链接

    中文版链接swift-4.0swift-3.1swift-3.0swift-2.2swift-2.1swift-2.0

  • Swift -- 中文版两大官方文档汇总(http://www.

    欢迎使用Swift (一)关于Swift--About Swift (二)Swift 初见--A Swift To...

  • swift String to Size

    Swift 4 Swift 3 Swift 2.3

网友评论

      本文标题:swift第二天

      本文链接:https://www.haomeiwen.com/subject/ksennttx.html