sladuf
200
sladuf
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (83)
    • ๐Ÿ“š Programming (32)
      • Swift (13)
      • JAVA (2)
      • Python (6)
      • SQL (6)
      • Web (5)
    • ๐Ÿ“ฑ iOS (25)
      • Base (7)
      • SwiftUI (9)
      • UIKit (7)
      • ์ธ๊ฐ• & ์ฑ… (2)
    • ๐Ÿ”— Algorithm (20)
      • Python (12)
      • Swift (3)
      • Tip (5)
    • ๐Ÿ—‚ ETC (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์Šค์œ„ํ”„ํŠธ
  • Swift

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๊ธ€์“ฐ๊ธฐ ์„ค์ •
hELLO ยท Designed By ์ •์ƒ์šฐ.
sladuf

200

[UIKit] CustomDatePicker ๋งŒ๋“ค๊ธฐ (2/3)
๐Ÿ“ฑ iOS/UIKit

[UIKit] CustomDatePicker ๋งŒ๋“ค๊ธฐ (2/3)

2023. 1. 8. 18:47

 

 

CustomPickerButton์„ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ DatePicker๋กœ ์ง„ํ™”ํ•ด๋ณด์ž

 

์•Œ๋‹ค์‹œํ”ผ ๋‚˜๋Š”

์ด๊ฑธ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค

 

๐Ÿ“Œ UI setting

๋ณ„๊ฑฐ ์—†๋‹ค.. ๊ทธ๋ƒฅ ใ„นใ…‡ UI setting code

open class CustomDatePicker: UIView{
    
    private var Titlelabel = UILabel()
    
    private var years = [String]()
    private var months = [String]()
    private var days = [String]()
    
    private let yearWidth : CGFloat = 126
    private let monthWidth : CGFloat = 103
    private let dayWidth : CGFloat = 103
    
    private lazy var yearPicker = CustomPickerButton(placeholder: "YYYY", width: yearWidth, data: years)
    private lazy var monthPicker = CustomPickerButton(placeholder: "MM", width: monthWidth, data: months)
    private lazy var dayPicker = CustomPickerButton(placeholder: "DD", width: dayWidth, data: days)
    
    func initAttribute(title: String){
        Titlelabel = {
            let label = UILabel()
            label.textColor = .black
            label.font = .systemFont(ofSize: 17)
            label.text = title
            return label
        }()
    
    }
    
    func initAutolayout(){
        [Titlelabel, yearPicker, monthPicker, dayPicker].forEach {
            self.addSubview($0)
        }
        
        self.addSubview(yearPicker)

        Titlelabel.snp.makeConstraints {
            $0.left.equalToSuperview()
            $0.top.equalToSuperview()
        }

        yearPicker.snp.makeConstraints {
            $0.left.equalToSuperview()
            $0.top.equalTo(Titlelabel.snp.bottom).offset(4)
            $0.bottom.equalToSuperview()
        }

        monthPicker.snp.makeConstraints {
            $0.left.equalTo(yearPicker.snp.right).offset(8)
            $0.top.equalTo(yearPicker)
            $0.bottom.equalToSuperview()
        }

        dayPicker.snp.makeConstraints {
            $0.left.equalTo(monthPicker.snp.right).offset(8)
            $0.top.equalTo(yearPicker)
            $0.bottom.equalToSuperview()
            $0.right.equalToSuperview()
        }

    }
    
}

 

์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ autolayout !!!

view์˜ ํฌ๊ธฐ๋‚˜ ์œ„์น˜๊ฐ€ ์ •ํ™•ํ•˜์ง€ ์•Š์œผ๋ฉด UIButton ๋™์ž‘ ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์น˜๋ž‘ ํฌ๊ธฐ ์„ค์ • ์ž˜ ํ•ด์ฃผ์‹œ๊ธธ,,

 

 

๐Ÿ“Œ date setting

๋‚˜๋Š” DatePicker๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‹ˆ๊นŒ ๋…„, ์›”, ์ผ์„ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

๊ทผ๋ฐ ์ผ๋‹จ.. ์•„์ง 2ํŽธ์ด๋‹ˆ๊นŒ ์ผ์€ ์ •ํ™•ํ•œ ์„ค์ •์„ ์ƒ๋žตํ•˜๊ณ .. ๋…„, ์›”๋งŒ ์„ค์ •ํ•ด๋ณด๊ฒ ์Œ ใ…Žใ…Ž

 

func dataSetting(){

    // 1970 ~ ํ˜„์žฌ ๋…„๋„ ๊นŒ์ง€
    for y in 1970...dateFormatter("yyyy") {
        years.append(String(y))
    }
    
    // default : 1 ~ 12
    for m in 1...12{
        months.append(String(m))
    }
    
    // not yet..
    for d in 1...31{
        days.append(String(d))
    }
}

func dateFormatter(_ format : String) -> Int {
    let formatter_year = DateFormatter()
    formatter_year.dateFormat = format
    let string_data = formatter_year.string(from: Date())
    return Int(string_data)!
}

 

๋…„๋„์˜ ๋์€ dateFormatter๋ฅผ ์ด์šฉํ•ด์„œ ํ˜„์žฌ ๋…„๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๊ฒŒ ํ•ด์คฌ์Œ !!

 

 

 

์‚ฌ์‹ค ์š”๋กท๊ฒŒ ํ•˜๋ฉด CustomDatePicker ๋ณด์—ฌ์ฃผ๊ธฐ์‹ ๊ตฌํ˜„์€ ๋์ž„..

์ด์ œ ์ผ์„ ์กฐ์ž‘ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์•„๋งˆ๋„ Observer๋ฅผ ์จ์•ผ ํ• ๊ฒƒ ๊ฐ™์Œ!!

๊ทธ๋ž˜์„œ ๋งˆ์ง€๋ง‰ 3์—์„œ ์•„์ฃผ ์ž์„ธํžˆ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค..๐Ÿ˜…

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ“ฑ iOS > UIKit' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[UIKit] TableView Multiple Cell, multi type json data parsing  (0) 2023.06.27
[UIKit] CustomDatePicker ๋งŒ๋“ค๊ธฐ (3/3)  (0) 2023.04.03
[UIKit] toast message ๋งŒ๋“ค๊ธฐ  (0) 2023.02.16
[UIKit] CustomDatePicker ๋งŒ๋“ค๊ธฐ (1/3)  (0) 2023.01.08
Passing Data (์ง์ ‘์ „๋‹ฌ๋ฐฉ์‹)  (0) 2022.06.27
    '๐Ÿ“ฑ iOS/UIKit' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [UIKit] CustomDatePicker ๋งŒ๋“ค๊ธฐ (3/3)
    • [UIKit] toast message ๋งŒ๋“ค๊ธฐ
    • [UIKit] CustomDatePicker ๋งŒ๋“ค๊ธฐ (1/3)
    • Passing Data (์ง์ ‘์ „๋‹ฌ๋ฐฉ์‹)
    sladuf
    sladuf

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”