간단한 JtappleCalendar 터치(v8.0.3)

13994 단어 SwiftJTAppleCalendar

입문


간혹 터치JTAppleCalendar를 할 기회가 있고 기사를 집필할 때공식 강좌에 버전 7계를 기재했지만 버전 8.0.0 페이지에는 구체적인 사용 방법이 기술되지 않았다.
따라서 우리는 버전 8계의 간단한 처리를 총결하였다.
앞으로의 절차는 이 문장를 바탕으로 진행된다.

단계


사전 준비


적절한 항목을 만듭니다.이번에는 JTAppleCalendarSample 으로 만들었어요.
이번에는 코코패스로 Jtapple Calendar를 설치합니다.
이 글에는 버전이 설치되어 있습니다8.0.3.
설치 방법은 기본 문장을 참조하십시오.
설치 후 열기 .xcworkspace.

실시


부속품


항목을 열고 우선 부품을 설치하세요.Main.storyboard UIVIew(주황색 배경)에 UICollectionView를 설치합니다.
요일의 부분에는 UILAbel이 적당히 배열되어 있다.

CollectionView의 사용자 정의 클래스는 "클래스"JTACMonthView이고 모듈은 "JTAppleCalendar이어야 합니다.

셀 경계를 표시하기 위해 최소 간격을 설정합니다.

셀 사용자 정의


캘린더 날짜 섹션 셀의 파일을 생성합니다.MainCalendarViewCell의 클래스 이름, 상위 클래스를 입력하십시오JTACDayCell.(버전 7은 JtappleCell)
XIB 파일을 동시에 작성합니다.
MainCalendarCell.xib에서 Label은 종횡 중심에 설치됩니다.
셀과 셀의 경계를 명확하게 하기 위해 배경에 색을 넣었다.

셀의 사용자 지정 클래스를 MyCalendarViewCell 로 설정하고 Identifier를 MyCalendarViewCell 로 설정합니다.

실시 중 세 가지 일이 있다
1.import JTappleCalendar
2. MainCalendarViewCell.xib에 배치된 태그를 Outlet 연결합니다.
3. configure 만들기 방법 (달력 클래스에서 사용)
총결한 것은 아래와 같다.
MainCalendarViewCell.swift
import UIKit
import JTAppleCalendar // 1

class MyCalendarViewCell: JTACDayCell {

    @IBOutlet weak var titleLabel: UILabel! // 2

    /// 3 セルの表示の設定をする
    /// ex.ラベルに日にちを入れる
    func configure(cellState: CellState) {
        titleLabel.text = cellState.text
    }
}

달력 보기


다음 단계는 달력 보기를 실현하는 것이다.
상속 UIVIew 클래스MyCalendarView.swift를 생성합니다.
여기서 하는 일
1.import JTappleCalendar
2. Main.스토리보드에 설정된 달력 보기를 Outlet 연결합니다
3.delegate와 데이터소스 정의
4. 셀 등록
태그 요소의 표시 속성을 수정합니다.
MyCalendarView.swift
import UIKit
import JTAppleCalendar // 1

class MyCalendarView: UIView {

    @IBOutlet var calendarView: JTACMonthView! // 2

    override func awakeFromNib() {
        // 3 delegateとdetasourceの定義
        calendarView.calendarDelegate = self
        calendarView.calendarDataSource = self

        // 4 MainCalendarCellの登録
        let nibName = UINib(nibName: "MyCalendarViewCell", bundle:nil)
        calendarView.register(nibName, forCellWithReuseIdentifier: "MyCalendarViewCell")
    }
}

Delegate


위의 방법은 빈 기술에서도 이동하지만, 아래의 방법과 같은 코드를 써야 할 것 같다.
원인에 대해서는 여기 의 Problem1 을 참조하십시오.
MainCalendarView.swift
extension MyCalendarView: JTACMonthViewDelegate {
    func calendar(_ calendar: JTACMonthView, willDisplay cell: JTACDayCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
        let cell = cell as! MyCalendarViewCell
        cell.configure(cellState: cellState)
    }

    // cellの設定
    func calendar(_ calendar: JTACMonthView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTACDayCell {
        let cell = calendar.dequeueReusableCell(withReuseIdentifier: "MyCalendarViewCell", for: indexPath) as! MyCalendarViewCell
        cell.configure(cellState: cellState)
        return cell
    }
}

Datasoure


MainCalendarView.swift
extension MyCalendarView: JTACMonthViewDataSource {
    // カレンダー作成に必要なパラメータの設定
    func configureCalendar(_ calendar: JTACMonthView) -> ConfigurationParameters {
        var current = Calendar.current
        current.locale = Locale(identifier: "ja_JP")
        current.timeZone = TimeZone(identifier: "Asia/Tokyo")!
        let date = Date()

        let startDate = date // 現在
        let endDate = current.date(byAdding: .month,
                                   value: +1,
                                   to: current.startOfDay(for: date)) //1月後

        let parameters = ConfigurationParameters(startDate: startDate,
                                                 endDate: endDate!,
                                                 numberOfRows: 5,
                                                 calendar: current,
                                                 firstDayOfWeek: .sunday)
        return parameters
    }
}

결과


이 작업을 수행하면 다음 화면에 달력이 표시됩니다.

끝내다


기본적으로 버전 7 계열과 사용법은 변화가 없다.
대상명이 바뀌었기 때문에 그곳은 주의가 필요한 것 같습니다.

인용하다

  • [개발일기] Jtapple Calendar-Qiita
  • https://patchthecode.com/
  • IMPORTANT: Here are some of the changes in version 7+. It will cause some code breaks.
  • patchthecode/JTAppleCalendar - GitHub
  • 좋은 웹페이지 즐겨찾기