函數
函數傳進去的值想在函數里面改變,加個inout
例:a: inout In
函數 封裝一段代碼
函數重載 :兩個相同名字的函數 , 參數類型或個數不同
閉包
閉包后面+() 是執行
定義閉包
let add ={
(a:Int, b:Int) -> Int in
return a + b
}
let plus = add(1,2)//執行閉包
//1.省略參數類型
var add: (Int, Int) -> Int
add = {
(a, b) -> Int in
return a + b }
result = add(1, 2) print(result)
//2.省略返回值類型
add = {
(a, b) in
return a + b }
result = add(123, 345) print(result)
//3.省略參數列表的圓括號
add = {
a, b in
return a + b }
result = add(456, 789) print(result
//4.省略參數列表,使用位置參數
add = {
return $0 + $1 }
result = add(678, 890) print(result)
閉包里面的可執行代碼只有一句,可以省略return
add={$0 + $1}
var label = UILabel()
var texfield = UITextField()
var ranNum = arc4random_uniform(100)
//定義一些viewController成員變量
//設置背景圖片
let bg = UIImageView(frame: CGRectMake(0, 20, 320, 568))
bg.image = UIImage(named:"1")
self.view.addSubview(bg)
//label框
label.frame = CGRectMake(0, 20, 320, 50)
label.text = "在輸入框輸入一個[0,100]的數字"
label.textColor = UIColor.redColor()
//label.backgroundColor = UIColor.redColor()
label.textAlignment = .Center
self.view.addSubview(label)
//文本框
texfield.frame = CGRectMake(100, 100, 100, 50)
texfield.backgroundColor = UIColor.init(red: 1, green: 0.5, blue: 0.6, alpha: 1)
texfield.textAlignment = .Center
texfield.returnKeyType = .Done
texfield.addTarget(self, action: #selector(exit), forControlEvents: .EditingDidEndOnExit)//點擊右下角的done鍵隱藏鍵盤
texfield.font = UIFont.boldSystemFontOfSize(20)//設置字體
texfield.borderStyle = .RoundedRect //文本框的邊框風格
texfield.placeholder = "輸入數字" //占位符顯示的內容
texfield.keyboardType = .Default //鍵盤類型
texfield.textColor = UIColor.redColor() //輸入文字的顏色
texfield.clearsOnBeginEditing = true //再次輸入的時候,清除上一次輸入
texfield.clearButtonMode = .WhileEditing //添加清除輸入框的小按鍵 (內容最后的x)
self.view.addSubview(texfield)
//確定按鍵
let btn = UIButton(type:.Custom)
let image = UIImage(named: "ok")
btn.setImage(image, forState: .Normal)
btn.setTitle("", forState: .Normal)
btn.adjustsImageWhenHighlighted = true
btn.frame = CGRect(x:50, y:300,width: 200 ,height: 200)
self.view.addSubview(btn)
//點擊執行部分
btn.addTarget(self, action: #selector(didClick), forControlEvents: .TouchUpInside)
//再猜一次按鍵
let gueAga = UIButton(type: .System)
gueAga.frame = CGRectMake(100, 150, 100, 100)
gueAga.setTitle("再猜一次", forState: .Normal)
self.view.addSubview(gueAga)
//點擊執行部分
gueAga.addTarget(self, action: #selector(guessAgain), forControlEvents: .TouchUpInside)
//點擊diClickbutton實現的功能
func didClick () {
let b = UInt32(texfield.text!)
if texfield.text == "" || b > 100 || b < 0{
label.text = "在輸入框輸入一個[0,100]的數字"
}else if b > ranNum{
label.text = "太大了"
print("太大了")
}else if b < ranNum{
label.text = "太小了"
print("太小了")
}else{
label.text = "猜對了"
print("猜對了")
}
}
//點擊再猜一次實現的功能
func guessAgain(){
ranNum = arc4random_uniform(100)
label.text = "猜一猜"
}
//設置點擊view隱藏鍵盤
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
這是代碼實現猜數字
最強猜數字!