TableView Cell 안에 DatePicker를 inline으로 넣었는데, AM/PM 스위치가 제대로 동작되지 않는데 원인을 모르겠습니다..

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • naem
      참가자
      • 글작성 : 1
      • 답글작성 : 1

      스크린샷 2021-10-03 오후 8.08.31

      샘플로 만들어서 먼저 테스트 중인데, 시/분 은 잘 수정이 되는데 AM/PM 스위치가 제대로 동작되지 않습니다.
      AM에서 PM으로 변경하면, 다시 곧바로 AM으로 변경됩니다. 그런데 값을 print 했을때는 ‘오후’로 출력됩니다..

      또 이해안가는 점음 TableView content 를 Stack Cell 로 설정해서 작성하면, 또 잘 동작되는데
      아래 코드처럼 Dynamic Prototypes 로 구현하면 위처럼 이상하게 동작됩니다..

      글로 표현하려니 쉽지 않네요. 왜 이런걸까요?..

      뭔가 계속 reload 되는걸까요?..

      `
      class TestViewController: UIViewController {

              @IBOutlet var tableView: UITableView!

              override func viewDidLoad() {
                    super.viewDidLoad()

                    self.tableView.delegate = self
                    self.tableView.dataSource = self
              }

      }

      extension TestViewController: UITableViewDelegate, UITableViewDataSource {
              func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                    return 1
              }

              func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                    let cell: TestTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: “testCell”) as! TestTableViewCell

                    return cell
              }
      }

      class TestTableViewCell: UITableViewCell {

              @IBOutlet weak var datePicker: UIDatePicker!

              override func awakeFromNib() {
                    super.awakeFromNib()

                    self.datePicker.preferredDatePickerStyle = .inline
                    self.datePicker.locale = Locale(identifier: “ko”)
              }

              override func setSelected(_ selected: Bool, animated: Bool) {
                    super.setSelected(selected, animated: animated)

              }

      }
      `

      • 이 게시글은 naem에 의해 3 years, 2 months 전에 수정됐습니다.
    • naem
      참가자
      • 글작성 : 1
      • 답글작성 : 1

      self.datePicker.locale = Locale(identifier: “ko”)

      위 코드를 제거했더니 동작하네요…;

      storyboard 에서 설정해도 제대로 동작이 안되니, 일단 제거할 생각입니다

      혹시 원인 아시는 분은 답글 부탁드립니다.

       

      참고로,  Date Picker Mode 가 Date 일 경우는 한국어 설정해도 잘 동작됩니다.

      Mode 가 Time 일 경우에 저리 동작됩니다;

1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom