防止偷懶日記Day9

接下來想要實做的就是把打席結果弄成選項給使用者做決定

目前想到的是使用UIPickerView, 或者是用ActionSheet

想了想用ActionSheet好像需要用很多層

所以今天先來試試UIPickerView

今天的成果大概長這樣

那就從製作UIPicerㄐView下手

先新增一個RecordPickerController.swift的檔案到Controller的Group內

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import UIKit

class RecordPickerController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

let recordtypeArray = ["H", "BB", "E", "K", "SC"]

var recordPickerView: UIPickerView!

override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green

recordPickerView = UIPickerView()
recordPickerView.frame = CGRect(x: 0, y: self.view.bounds.height / 2, width: self.view.bounds.width, height: 200)
recordPickerView.showsSelectionIndicator = true
recordPickerView.delegate = self
recordPickerView.dataSource = self

self.view.addSubview(recordPickerView)

}

func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return recordtypeArray.count
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return recordtypeArray[row]
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
print("select \(recordtypeArray[row])")
}

}

9到21行在viewDidLoad裡面實作並設定pickerView的大小、delegate、datasource

然後實作繼承UIPickerViewDelegate, UIPickerViewDataSource需要實作的numberOfRowsInComponent跟titleForRow

回傳前面設定的recordtypeArray的count跟內容

接下來回到RecordController修改一下sentButton()

1
2
3
4
5
func sentRecord(sender: UIButton) {
let controller = RecordPickerController()
present(controller, animated: true, completion: nil)
}

其實蠻偷懶的只是將畫面推到RecordPickerController,接下來應該要讓推出來的畫面只是個子畫面

放一格在現在畫面中間就好,不過這就之後再加上去

這兩天想了想UI還是需要再做一些調整,看明天想先作哪邊XD

Support

Comments

2017-06-30

⬆︎TOP