본문 바로가기

개발

[Swift 4] 커스텀 피커뷰 Custom PickerView iOS

알람 시간을 설정해야 하는데 기본 피커뷰 사용하긴 싫고 팝업으로 띄우는 것도 귀찮을 때 사용할 간편한 커스텀 피커뷰
나는 매일 동일한 시간에 반복해서 알림을 할 것이라 날짜는 필요 없어서 빼버렸다.
여러 번 사용해왔던 거지만 역시나 매번 까먹어서 정리 차원에서 올려둔다.


  let picker = UIDatePicker()
  let toolbar = UIToolbar()
 
  func createDatePicker() {
          // toolbar
          toolbar.barTintColor = UIColor(hex: "F8F8F8")
          toolbar.clipsToBounds = true
          toolbar.sizeToFit()
         
          // done button for toolbar
          let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
          let g = UIImage(named: "timePicker_check")
          let done = UIBarButtonItem(image: g, style: .plain, target: nil, action: #selector(donePressed))
          done.tintColor = UIColor(hex: "25808E")
          toolbar.setItems([flexibleSpace, done], animated: false)
         
          picker.datePickerMode = .time
          picker.backgroundColor = UIColor(hex: "F8F8F8")
      }
     
      @objc func donePressed() {
          let pickDateType = picker.date
 
          userDefault.set(pickDateType, forKey: "AlramTime")
          userDefault.synchronize()
         
          pickDate = pickDateType.toSimpleDate(inputDate: pickDateType)
         
          if userDefault.value(forKey: "AlramStatus") != nil {
              let alramStatus = userDefault.bool(forKey: "AlramStatus")
              if alramStatus == true {
                  setNoti()
                  print("알람이 켜져있어서 셋노티 실행함")
              }
          }
         
          self.view.endEditing(true)
          settingTableView.reloadData()
      }