簡體   English   中英

如何在cvcalendar swift中禁用手勢控制

[英]How to disable gesture control in cvcalendar swift

我正在使用CVCalendar顯示日歷。 我想在日歷視圖中禁用滑動操作。 怎么可能?

以下代碼調用cvcalendar並顯示日歷。 我有兩個按鈕以及nex和prev來更改月份視圖。

import UIKit

class CalendarViewController: UIViewController {


@IBOutlet weak var menuView: CVCalendarMenuView!

@IBOutlet weak var calendarView: CVCalendarView!

@IBOutlet weak var monthLabel: UILabel!

@IBOutlet weak var eventTableView: UITableView!

var event : String = "1"
var shouldShowDaysOut = true
var animationFinished = true

override func viewDidLoad() {

    super.viewDidLoad() 
  monthLabel.text = CVDate(date: NSDate()).globalDescription

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    calendarView.commitCalendarViewUpdate()
    menuView.commitMenuViewUpdate()
}

}
/*
* CVCalendar library functions to display calender and events
*/


extension CalendarViewController: CVCalendarViewDelegate , MenuViewDelegate {


func presentationMode() -> CalendarMode {
    return .MonthView
}

func firstWeekday() -> Weekday {
    return .Sunday
}

func shouldShowWeekdaysOut() -> Bool {
    return false
}


func didSelectDayView(dayView: CVCalendarDayView) {
    let date = dayView.date

    if dayView.isCurrentDay {
    eventTableView.hidden = false
    eventTableView.reloadData()
    }

    else {

        eventTableView.hidden = true

    }
    println("\(calendarView.presentedDate.commonDescription) is selected!")

}

func presentedDateUpdated(date: CVDate) {
    if monthLabel.text != date.globalDescription && self.animationFinished {
        let updatedMonthLabel = UILabel()
        updatedMonthLabel.textColor = monthLabel.textColor
        updatedMonthLabel.font = monthLabel.font
        updatedMonthLabel.textAlignment = .Center
        updatedMonthLabel.text = date.globalDescription
        updatedMonthLabel.sizeToFit()
        updatedMonthLabel.alpha = 0
        updatedMonthLabel.center = self.monthLabel.center

        let offset = CGFloat(48)
        updatedMonthLabel.transform = CGAffineTransformMakeTranslation(0, offset)
        updatedMonthLabel.transform = CGAffineTransformMakeScale(1, 0.1)

        UIView.animateWithDuration(0.35, delay: 0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
            self.animationFinished = false
            self.monthLabel.transform = CGAffineTransformMakeTranslation(0, -offset)
            self.monthLabel.transform = CGAffineTransformMakeScale(1, 0.1)
            self.monthLabel.alpha = 0

            updatedMonthLabel.alpha = 1
            updatedMonthLabel.transform = CGAffineTransformIdentity

            }) { _ in

                self.animationFinished = true
                self.monthLabel.frame = updatedMonthLabel.frame
                self.monthLabel.text = updatedMonthLabel.text
                self.monthLabel.transform = CGAffineTransformIdentity
                self.monthLabel.alpha = 1
                updatedMonthLabel.removeFromSuperview()
        }

        self.view.insertSubview(updatedMonthLabel, aboveSubview: self.monthLabel)
    }
}

func topMarker(shouldDisplayOnDayView dayView: CVCalendarDayView) -> Bool {
    return false
}

func dotMarker(shouldShowOnDayView dayView: CVCalendarDayView) -> Bool {
    let day = dayView.date.day

    if dayView.isCurrentDay{


        return true
    }


    return false
}

func dotMarker(colorOnDayView dayView: CVCalendarDayView) -> [UIColor] {
    let day = dayView.date.day
    let color = UIColor.greenColor()
    return [color]
}

func dotMarker(shouldMoveOnHighlightingOnDayView dayView: CVCalendarDayView) -> Bool {
    return false
}


}

// MARK: - CVCalendarViewAppearanceDelegate

extension CalendarViewController: CVCalendarViewAppearanceDelegate {
    func dayLabelPresentWeekdayInitallyBold() -> Bool {
        return true
    }

func spaceBetweenDayViews() -> CGFloat {
    return 2
}
}


    @IBAction func next(sender: AnyObject) {

    calendarView.loadNextView()

}

@IBAction func previous(sender: AnyObject) {

    calendarView.loadPreviousView()
}

您可以CVCalendarView以下方式禁用CVCalendarView滾動:

轉到CVCalendarContentViewController.swift然后找到擴展名CVCalendarContentViewController

在該擴展名中,通過替換以下行來更改scrollView的大小:

scrollView.contentSize = CGSizeMake(frame.size.width * 3, frame.size.height)

使用以下代碼行:

scrollView.contentSize = CGSizeMake(frame.size.width, frame.size.height)

希望它會有所幫助。

更新:

轉到項目導航器,單擊第三個圖標,即“查找導航器”,如下圖所示:

在此處輸入圖片說明

並將此行搜索到該textField中:

scrollView.contentSize = CGSizeMake(frame.size.width * 3, frame.size.height)

您的結果將是這樣的:

在此處輸入圖片說明

單擊該結果並將該行替換為以下行:

scrollView.contentSize = CGSizeMake(frame.size.width, frame.size.height)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM