Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 고르드
- graphql with reactnative
- graphql mutation error
- 비동기배열처리방법
- useMutation error
- graphql react native
- promise처리
- 지보싶 신촌점
- apollo react native
- 예쁜술집 예술
- 잠실새내 도그존
- 화이트해커를 위한 웹 해킹의 기술
- 운정 소바동
- 금별맥주
- 신촌 소문난집
- 앙버터마카롱
- 홍대 예술
- graphql 400
- apolloclient
- 잠실새내
- 홍대 카페 장쌤
- typescript
- 홍대 토라비
- graphql with RN
- 도그존
- graphql
- promise메서드
- 토라비
- 화이트 해커를 위한 웹 해킹의 기술
- 비동기배열
Archives
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
[ios] Locord 개발일지 - datepicker 팝업 본문
우선 날짜를 입력받을 텍스트 필드를 스토리보드에서 가져온다
UIDatePicker 상수를 선언
@IBOutlet weak var dateField: UITextField!
let datePicker = UIDatePicker()
그리고 팝업될 datepickerview 함수도 만들어준다. done 버튼도 추가해야함!
func createDatePickerView(){
//toolbar 만들기, done 버튼이 들어갈 곳
let toolbar = UIToolBar()
toolbar.sizeToFit() //view 스크린에 딱 맞게 사이즈 조정
//버튼 만들기
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target : nil, action: #selector(donePressed))
//action 자리에는 이후에 실행될 함수가 들어간다?
//버튼 툴바에 할당
toolbar.setItems([doneButton], animated: true)
//toolbar를 키보드 대신 할당?
dateField.inputAccessoryView = toolbar
//assign datepicker to the textfield, 텍스트 필드에 datepicker 할당
dateField.inputView = datePicker
}
이제 popup 구성은 끝났다!
done button 이 눌렸을 때 실행될 함수만 제작해보자! selector 로 함수 호출할 때 @objc 가 있어야 한다고 나오므로 붙여주자
@objc func donePressed(){
dateField.text="\(datePicker.date)"
self.view.endEditing(true)
}
여기까지만 실행하면 날짜, 시간이 굉장히 길게 출력된다.
따라서 원하는 형식으로 출력되게 하려면 살짝 수정하자
func createDatePickerView() 에서 datePicker 모드를 수정해주자
func createDatePickerView(){
//toolbar 만들기, done 버튼이 들어갈 곳
let toolbar = UIToolBar()
toolbar.sizeToFit(). //view 스크린에 딱 맞게 사이즈 조정
//버튼 만들기
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target : nil, action: #selector(donePressed))
//action 자리에는 이후에 실행될 함수가 들어간다?
//버튼 툴바에 할당
toolbar.setItems([doneButton], animated: true)
//toolbar를 키보드 대신 할당?
dateField.inputAccessoryView = toolbar
//assign datepicker to the textfield, 텍스트 필드에 datepicker 할당
dateField.inputView = datePicker
//datePicker 형식 바꾸기
datePicker.datePickerMode = .date
}
하지만 datePicker 형식을 바꾸어도 텍스트 필드에는 길게 뜬다.
얘도 수정해주자
donePressed 에서 수정한다.
@objc func donePressed(){
//formatter
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .none
dateField.text=formatter.string(from: datePicker.date)
self.view.endEditing(true)
}
Locord 에 활용한 코드
import UIKit
class record_creation: UIViewController, UITextFieldDelegate {
@IBOutlet weak var dateField: UITextField!
//@IBOutlet weak var image: UIImageView!
//@IBOutlet weak var text: UITextView!
//@IBOutlet weak var okButton: UIButton!
//@IBOutlet weak var cancelButton: UIButton!
let datePicker = UIDatePicker() //날짜 처리
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
createDatePickerView()
}
//날짜 처리
func createDatePickerView() {
let toolbar = UIToolbar()
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePressed))
toolbar.setItems([doneButton], animated: true)
datePicker.preferredDatePickerStyle = .wheels
datePicker.datePickerMode = .date
dateField.inputAccessoryView = toolbar
dateField.inputView = datePicker
}
@objc func donePressed() {
let formatter = DateFormatter()
// formatter.dateStyle = .medium
formatter.timeStyle = .none
formatter.dateFormat = "yyyy/MM/dd"
dateField.text = formatter.string(from: datePicker.date)
self.view.endEditing(true)
}
}
'개발 > 프로젝트' 카테고리의 다른 글
[CEOS - 1주차 미션] vanilla-todo 구현하기 (1) | 2021.03.21 |
---|---|
[ios] Locord 개발일지 - 서버에 이미지, 데이터 POST (0) | 2021.03.03 |
[ios] Locord 개발일지 - naver 지도 불러오기 및 수정 (0) | 2021.02.16 |
[ios] Locord 개발일지 - emojiPicker 팝업 (0) | 2021.02.13 |
2020-1 사이버보안 기초 프로젝트 (0) | 2020.09.02 |
Comments