swift第二天

前言

今天的swift小練習比較簡單, 主要目的是如何快速熟悉storyboard拖線后的代碼風格. 下面我們來看看運行效果, 通過代碼, 我們看看能從中領(lǐng)悟到什么?
  • 運行效果


    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的區(qū)別: 兩者都是關(guān)鍵字, 并且都是修飾私有屬性或者私有方法.但是他們之間的區(qū)別就是fileprivate修飾的屬性或者方法子類是不能訪問, 但是private修飾的屬性和方法,子類是可以訪問的.
2, 如何實現(xiàn)自定義一個簡單的彈框
3, 蘋果建議我們將多余的代碼或者說冗余的代碼刪除掉, 只需要留下用到的代碼即可
4, 注意強制轉(zhuǎn)換的寫法, 拼接的寫法

總結(jié)
不積跬步無以至千里, 不能好高騖遠. 代碼雖然簡單, 任然堅持記錄筆記的原因是想養(yǎng)成一個很好的習慣. 不要因簡單就忽視它, 也不要因困難而害怕它.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲤妥,一起剝皮案震驚了整個濱河市雹顺,隨后出現(xiàn)的幾起案子露筒,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件红碑,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機刨仑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夹姥,“玉大人杉武,你說我怎么就攤上這事≌奘郏” “怎么了轻抱?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長圾亏。 經(jīng)常有香客問我十拣,道長,這世上最難降的妖魔是什么志鹃? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任夭问,我火速辦了婚禮,結(jié)果婚禮上曹铃,老公的妹妹穿的比我還像新娘缰趋。我一直安慰自己,他們只是感情好陕见,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布秘血。 她就那樣靜靜地躺著,像睡著了一般评甜。 火紅的嫁衣襯著肌膚如雪灰粮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天忍坷,我揣著相機與錄音粘舟,去河邊找鬼熔脂。 笑死,一個胖子當著我的面吹牛柑肴,可吹牛的內(nèi)容都是我干的霞揉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晰骑,長吁一口氣:“原來是場噩夢啊……” “哼适秩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硕舆,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秽荞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后岗宣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚂会,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年耗式,在試婚紗的時候發(fā)現(xiàn)自己被綠了胁住。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡刊咳,死狀恐怖彪见,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娱挨,我是刑警寧澤余指,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站跷坝,受9級特大地震影響酵镜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柴钻,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一淮韭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贴届,春花似錦靠粪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至元潘,卻和暖如春畔乙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翩概。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工啸澡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留袖订,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓嗅虏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親上沐。 傳聞我的和親對象是個殘疾皇子皮服,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 主要有幾點 NSJSONSerialization.JSONObjectWithData as do catch ...
    QJK閱讀 613評論 0 3
  • 第二天是國內(nèi)開發(fā)者場龄广,一共8位嘉賓做分享。 第一位蕴侧,唐巧分享從引用數(shù)和struct的內(nèi)存布局說明swift性能比o...
    pointertan閱讀 495評論 0 0
  • 一 : 字符串的使用 : 1>字符串的定義 1.1 不可變字符串的定義 1.2 可變字符串的定義 2>獲取字符串的...
    夢若繁星閱讀 425評論 0 0
  • 一择同、可選類型 可選類型(Optionals),表示這個變量可能有值或者沒有值净宵。 //寫法//var value :...
    RDPCode閱讀 165評論 0 0
  • 今天學到的東西: 1. 完成了 bannerView 輪播的樣式敲才,包括 自動輪播廣告,如圖 bannerview2...
    BeijingIamback閱讀 187評論 0 1