Swift隨手紀錄Day9-PickerView

Darren
Swift

防止偷懶日記Day9 接下來想要實做的就是把打席結果弄成選項給使用者做決定 目前想到的是使用UIPickerView, 或者是用ActionSheet 想了想用ActionSheet好像需要用很多層 所以今天先來試試UIPickerView

防止偷懶日記Day9

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

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

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

所以今天先來試試UIPickerView

今天的成果大概長這樣

那就從製作UIPicerㄐView下手

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

import

class
RecordPickerController
UIViewController
UIPickerViewDelegate
UIPickerViewDataSource
    
    let
=
"H"
"BB"
"E"
"K"
"SC"
    
    var
UIPickerView
    
    override
func
viewDidLoad
        super
        view.backgroundColor =
        
        recordPickerView =
UIPickerView
        recordPickerView.frame =
CGRect
0
self
/
2
self
200
        recordPickerView.showsSelectionIndicator =
true
        recordPickerView.delegate =
self
        recordPickerView.dataSource =
self
        
        self

    }

    func
numberOfComponents
in
pickerView
UIPickerView
Int
        return
1
    }
    
    func
pickerView
_
pickerView
UIPickerView
numberOfRowsInComponent
component
Int
Int
        return
    }
    
    func
pickerView
_
pickerView
UIPickerView
titleForRow
row
Int
forComponent
component
Int
String
        return
    }
    
    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()

func
sentRecord
sender
UIButton
    let
=
RecordPickerController
    present(controller, animated: true
nil
}

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

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

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

Thanks for reading!

I hope you found this article helpful. Feel free to share your thoughts or questions.