gpt4 book ai didi

ios - 如何在 cvcalendar swift 中禁用手势控制

转载 作者:行者123 更新时间:2023-11-29 01:46:53 24 4
gpt4 key购买 nike

我正在使用 CVCalendar显示日历。我想在日历 View 中禁用滑动操作。怎么可能?

以下代码调用 cvcalendar 并显示日历。我有两个按钮和 nex 和 prev 来更改月 View 。

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 的滚动:

转到 CVCalendarContentViewController.swift,然后找到扩展 CVCalendarContentViewController

在该扩展中,通过替换以下行来更改 scrollView 的大小:

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

使用这行代码:

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

希望对您有所帮助。

更新:

转到项目导航器,单击第三个图标,即“查找导航器”,如下图所示:

enter image description here

并在该文本字段中搜索这一行:

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

你的结果将是这样的:

enter image description here

单击该结果并将该行替换为以下行:

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

关于ios - 如何在 cvcalendar swift 中禁用手势控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com