Compare commits

..

No commits in common. "master" and "develop" have entirely different histories.

39 changed files with 135 additions and 344 deletions

View File

@ -105,7 +105,7 @@
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar - (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter dateFromString:@"2020-07-08"]; return [self.dateFormatter dateFromString:@"2016-07-08"];
} }
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar - (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar

View File

@ -42,68 +42,68 @@ NS_ASSUME_NONNULL_END
if (self) { if (self) {
self.title = @"FSCalendar"; self.title = @"FSCalendar";
self.fillDefaultColors = @{@"2020/10/08":[UIColor purpleColor], self.fillDefaultColors = @{@"2015/10/08":[UIColor purpleColor],
@"2020/10/06":[UIColor greenColor], @"2015/10/06":[UIColor greenColor],
@"2020/10/18":[UIColor cyanColor], @"2015/10/18":[UIColor cyanColor],
@"2020/10/22":[UIColor yellowColor], @"2015/10/22":[UIColor yellowColor],
@"2020/11/08":[UIColor purpleColor], @"2015/11/08":[UIColor purpleColor],
@"2020/11/06":[UIColor greenColor], @"2015/11/06":[UIColor greenColor],
@"2020/11/18":[UIColor cyanColor], @"2015/11/18":[UIColor cyanColor],
@"2020/11/22":[UIColor yellowColor], @"2015/11/22":[UIColor yellowColor],
@"2020/12/08":[UIColor purpleColor], @"2015/12/08":[UIColor purpleColor],
@"2020/12/06":[UIColor greenColor], @"2015/12/06":[UIColor greenColor],
@"2020/12/18":[UIColor cyanColor], @"2015/12/18":[UIColor cyanColor],
@"2020/12/22":[UIColor magentaColor]}; @"2015/12/22":[UIColor magentaColor]};
self.fillSelectionColors = @{@"2020/10/08":[UIColor greenColor], self.fillSelectionColors = @{@"2015/10/08":[UIColor greenColor],
@"2020/10/06":[UIColor purpleColor], @"2015/10/06":[UIColor purpleColor],
@"2020/10/17":[UIColor grayColor], @"2015/10/17":[UIColor grayColor],
@"2020/10/21":[UIColor cyanColor], @"2015/10/21":[UIColor cyanColor],
@"2020/11/08":[UIColor greenColor], @"2015/11/08":[UIColor greenColor],
@"2020/11/06":[UIColor purpleColor], @"2015/11/06":[UIColor purpleColor],
@"2020/11/17":[UIColor grayColor], @"2015/11/17":[UIColor grayColor],
@"2020/11/21":[UIColor cyanColor], @"2015/11/21":[UIColor cyanColor],
@"2020/12/08":[UIColor greenColor], @"2015/12/08":[UIColor greenColor],
@"2020/12/06":[UIColor purpleColor], @"2015/12/06":[UIColor purpleColor],
@"2020/12/17":[UIColor grayColor], @"2015/12/17":[UIColor grayColor],
@"2020/12/21":[UIColor cyanColor]}; @"2015/12/21":[UIColor cyanColor]};
self.borderDefaultColors = @{@"2020/10/08":[UIColor brownColor], self.borderDefaultColors = @{@"2015/10/08":[UIColor brownColor],
@"2020/10/17":[UIColor magentaColor], @"2015/10/17":[UIColor magentaColor],
@"2020/10/21":FSCalendarStandardSelectionColor, @"2015/10/21":FSCalendarStandardSelectionColor,
@"2020/10/25":[UIColor blackColor], @"2015/10/25":[UIColor blackColor],
@"2020/11/08":[UIColor brownColor], @"2015/11/08":[UIColor brownColor],
@"2020/11/17":[UIColor magentaColor], @"2015/11/17":[UIColor magentaColor],
@"2020/11/21":FSCalendarStandardSelectionColor, @"2015/11/21":FSCalendarStandardSelectionColor,
@"2020/11/25":[UIColor blackColor], @"2015/11/25":[UIColor blackColor],
@"2020/12/08":[UIColor brownColor], @"2015/12/08":[UIColor brownColor],
@"2020/12/17":[UIColor magentaColor], @"2015/12/17":[UIColor magentaColor],
@"2020/12/21":FSCalendarStandardSelectionColor, @"2015/12/21":FSCalendarStandardSelectionColor,
@"2020/12/25":[UIColor blackColor]}; @"2015/12/25":[UIColor blackColor]};
self.borderSelectionColors = @{@"2020/10/08":[UIColor redColor], self.borderSelectionColors = @{@"2015/10/08":[UIColor redColor],
@"2020/10/17":[UIColor purpleColor], @"2015/10/17":[UIColor purpleColor],
@"2020/10/21":FSCalendarStandardSelectionColor, @"2015/10/21":FSCalendarStandardSelectionColor,
@"2020/10/25":FSCalendarStandardTodayColor, @"2015/10/25":FSCalendarStandardTodayColor,
@"2020/11/08":[UIColor redColor], @"2015/11/08":[UIColor redColor],
@"2020/11/17":[UIColor purpleColor], @"2015/11/17":[UIColor purpleColor],
@"2020/11/21":FSCalendarStandardSelectionColor, @"2015/11/21":FSCalendarStandardSelectionColor,
@"2020/11/25":FSCalendarStandardTodayColor, @"2015/11/25":FSCalendarStandardTodayColor,
@"2020/12/08":[UIColor redColor], @"2015/12/08":[UIColor redColor],
@"2020/12/17":[UIColor purpleColor], @"2015/12/17":[UIColor purpleColor],
@"2020/12/21":FSCalendarStandardSelectionColor, @"2015/12/21":FSCalendarStandardSelectionColor,
@"2020/12/25":FSCalendarStandardTodayColor}; @"2015/12/25":FSCalendarStandardTodayColor};
self.datesWithEvent = @[@"2020-10-03", self.datesWithEvent = @[@"2015-10-03",
@"2020-10-06", @"2015-10-06",
@"2020-10-12", @"2015-10-12",
@"2020-10-25"]; @"2015-10-25"];
self.datesWithMultipleEvents = @[@"2020-10-08", self.datesWithMultipleEvents = @[@"2015-10-08",
@"2020-10-16", @"2015-10-16",
@"2020-10-20", @"2015-10-20",
@"2020-10-28"]; @"2015-10-28"];
self.gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; self.gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
@ -134,7 +134,7 @@ NS_ASSUME_NONNULL_END
[self.view addSubview:calendar]; [self.view addSubview:calendar];
self.calendar = calendar; self.calendar = calendar;
[calendar setCurrentPage:[self.dateFormatter1 dateFromString:@"2020/10/03"] animated:NO]; [calendar setCurrentPage:[self.dateFormatter1 dateFromString:@"2015/10/03"] animated:NO];
UIBarButtonItem *todayItem = [[UIBarButtonItem alloc] initWithTitle:@"TODAY" style:UIBarButtonItemStylePlain target:self action:@selector(todayItemClicked:)]; UIBarButtonItem *todayItem = [[UIBarButtonItem alloc] initWithTitle:@"TODAY" style:UIBarButtonItemStylePlain target:self action:@selector(todayItemClicked:)];
self.navigationItem.rightBarButtonItem = todayItem; self.navigationItem.rightBarButtonItem = todayItem;

View File

@ -149,6 +149,7 @@
30B0BAC51B8D8E22004B9476 /* FSCalendarDynamicHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarDynamicHeader.h; sourceTree = "<group>"; }; 30B0BAC51B8D8E22004B9476 /* FSCalendarDynamicHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarDynamicHeader.h; sourceTree = "<group>"; };
30B0BAC61B8D8E22004B9476 /* FSCalendarHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarHeaderView.h; sourceTree = "<group>"; }; 30B0BAC61B8D8E22004B9476 /* FSCalendarHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarHeaderView.h; sourceTree = "<group>"; };
30B0BAC71B8D8E22004B9476 /* FSCalendarHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarHeaderView.m; sourceTree = "<group>"; }; 30B0BAC71B8D8E22004B9476 /* FSCalendarHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarHeaderView.m; sourceTree = "<group>"; };
30B0BACA1B8D8E22004B9476 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
30CEF8FE1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarTransitionCoordinator.h; sourceTree = "<group>"; }; 30CEF8FE1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarTransitionCoordinator.h; sourceTree = "<group>"; };
30CEF8FF1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarTransitionCoordinator.m; sourceTree = "<group>"; }; 30CEF8FF1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarTransitionCoordinator.m; sourceTree = "<group>"; };
30D55B0E1C90240000BB43D5 /* HidePlaceholderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HidePlaceholderViewController.h; sourceTree = SOURCE_ROOT; }; 30D55B0E1C90240000BB43D5 /* HidePlaceholderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HidePlaceholderViewController.h; sourceTree = SOURCE_ROOT; };
@ -161,7 +162,6 @@
30FCB3951BAAD112002B87AD /* FSCalendarStickyHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarStickyHeader.m; sourceTree = "<group>"; }; 30FCB3951BAAD112002B87AD /* FSCalendarStickyHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarStickyHeader.m; sourceTree = "<group>"; };
50F2ADE6216D954A00CC481F /* FSCalendarSeparatorDecorationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FSCalendarSeparatorDecorationView.h; sourceTree = "<group>"; }; 50F2ADE6216D954A00CC481F /* FSCalendarSeparatorDecorationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FSCalendarSeparatorDecorationView.h; sourceTree = "<group>"; };
50F2ADE7216D954A00CC481F /* FSCalendarSeparatorDecorationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FSCalendarSeparatorDecorationView.m; sourceTree = "<group>"; }; 50F2ADE7216D954A00CC481F /* FSCalendarSeparatorDecorationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FSCalendarSeparatorDecorationView.m; sourceTree = "<group>"; };
9C88197F25F26B2F00E180CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EE0D7FC71B89C5D3003C287B /* FSCalendarExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FSCalendarExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; EE0D7FC71B89C5D3003C287B /* FSCalendarExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FSCalendarExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
EE0D7FCB1B89C5D3003C287B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; EE0D7FCB1B89C5D3003C287B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EE52AE161B91E68A00016662 /* FSCalendarScopeExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarScopeExampleViewController.h; sourceTree = SOURCE_ROOT; }; EE52AE161B91E68A00016662 /* FSCalendarScopeExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarScopeExampleViewController.h; sourceTree = SOURCE_ROOT; };
@ -261,7 +261,6 @@
30B0BABC1B8D8E22004B9476 /* FSCalendar */ = { 30B0BABC1B8D8E22004B9476 /* FSCalendar */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9C88197F25F26B2F00E180CD /* Info.plist */,
30B0BABF1B8D8E22004B9476 /* FSCalendar.h */, 30B0BABF1B8D8E22004B9476 /* FSCalendar.h */,
30B0BAC01B8D8E22004B9476 /* FSCalendar.m */, 30B0BAC01B8D8E22004B9476 /* FSCalendar.m */,
30B0BAC11B8D8E22004B9476 /* FSCalendarAppearance.h */, 30B0BAC11B8D8E22004B9476 /* FSCalendarAppearance.h */,
@ -293,11 +292,20 @@
309225381B905C4300123031 /* FSCalendarConstants.h */, 309225381B905C4300123031 /* FSCalendarConstants.h */,
309225391B905C4300123031 /* FSCalendarConstants.m */, 309225391B905C4300123031 /* FSCalendarConstants.m */,
30B0BAC51B8D8E22004B9476 /* FSCalendarDynamicHeader.h */, 30B0BAC51B8D8E22004B9476 /* FSCalendarDynamicHeader.h */,
30B0BAF31B8D9A91004B9476 /* Supporting Files */,
); );
name = FSCalendar; name = FSCalendar;
path = ../FSCalendar; path = ../FSCalendar;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
30B0BAF31B8D9A91004B9476 /* Supporting Files */ = {
isa = PBXGroup;
children = (
30B0BACA1B8D8E22004B9476 /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
30D55B0D1C9023E400BB43D5 /* Hide Placeholders */ = { 30D55B0D1C9023E400BB43D5 /* Hide Placeholders */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -580,9 +588,10 @@
}; };
buildConfigurationList = EE0D7FC21B89C5D3003C287B /* Build configuration list for PBXProject "FSCalendar" */; buildConfigurationList = EE0D7FC21B89C5D3003C287B /* Build configuration list for PBXProject "FSCalendar" */;
compatibilityVersion = "Xcode 3.2"; compatibilityVersion = "Xcode 3.2";
developmentRegion = en; developmentRegion = English;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
knownRegions = ( knownRegions = (
English,
en, en,
Base, Base,
ja, ja,
@ -886,7 +895,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEVELOPMENT_TEAM = HZF422TY46; DEVELOPMENT_TEAM = HZF422TY46;
INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; INFOPLIST_FILE = "$(SRCROOT)/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendarExample; PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendarExample;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@ -900,7 +909,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEVELOPMENT_TEAM = HZF422TY46; DEVELOPMENT_TEAM = HZF422TY46;
INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; INFOPLIST_FILE = "$(SRCROOT)/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendarExample; PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendarExample;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@ -923,9 +932,8 @@
); );
INFOPLIST_FILE = "$(SRCROOT)/../FSCalendar/Info.plist"; INFOPLIST_FILE = "$(SRCROOT)/../FSCalendar/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MARKETING_VERSION = 2.8.3;
PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendar; PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendar;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
@ -946,9 +954,8 @@
DYLIB_INSTALL_NAME_BASE = "@rpath"; DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "$(SRCROOT)/../FSCalendar/Info.plist"; INFOPLIST_FILE = "$(SRCROOT)/../FSCalendar/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MARKETING_VERSION = 2.8.3;
PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendar; PRODUCT_BUNDLE_IDENTIFIER = com.wenchaod.FSCalendar;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES; SKIP_INSTALL = YES;

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -1,98 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1140"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EE0D7FC61B89C5D3003C287B"
BuildableName = "FSCalendarExample.app"
BlueprintName = "FSCalendarExample"
ReferencedContainer = "container:FSCalendar.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "30671DC61D6D574C00BCFC4E"
BuildableName = "FSCalendarTests.xctest"
BlueprintName = "FSCalendarTests"
ReferencedContainer = "container:FSCalendar.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F9384A611E3ACEFB001601E0"
BuildableName = "FSCalendarExampleUITests.xctest"
BlueprintName = "FSCalendarExampleUITests"
ReferencedContainer = "container:FSCalendar.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EE0D7FC61B89C5D3003C287B"
BuildableName = "FSCalendarExample.app"
BlueprintName = "FSCalendarExample"
ReferencedContainer = "container:FSCalendar.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EE0D7FC61B89C5D3003C287B"
BuildableName = "FSCalendarExample.app"
BlueprintName = "FSCalendarExample"
ReferencedContainer = "container:FSCalendar.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -43,14 +43,14 @@
[[application.tables elementBoundByIndex:0].cells[@"DIY Example, Feature!"] tap]; [[application.tables elementBoundByIndex:0].cells[@"DIY Example, Feature!"] tap];
XCUIElement *calendar = application.otherElements[@"calendar"]; XCUIElement *calendar = application.otherElements[@"calendar"];
XCUICoordinate *swipeStart = [calendar coordinateWithNormalizedOffset:CGVectorMake(0.8/7.0, 0.5)]; XCUICoordinate *swipeStart = [calendar coordinateWithNormalizedOffset:CGVectorMake(0.5/7.0, 0.5)];
XCUICoordinate *swipeEnd = [calendar coordinateWithNormalizedOffset:CGVectorMake(6.5/7.0, 0.5)]; XCUICoordinate *swipeEnd = [calendar coordinateWithNormalizedOffset:CGVectorMake(6.5/7.0, 0.5)];
[swipeStart pressForDuration:0.8 thenDragToCoordinate:swipeEnd]; [swipeStart pressForDuration:0.8 thenDragToCoordinate:swipeEnd];
[calendar swipeUp]; [calendar swipeUp];
[calendar swipeLeft]; [calendar swipeLeft];
swipeStart = [calendar coordinateWithNormalizedOffset:CGVectorMake(0.8/7.0, 0.75)]; swipeStart = [calendar coordinateWithNormalizedOffset:CGVectorMake(0.5/7.0, 0.75)];
swipeEnd = [calendar coordinateWithNormalizedOffset:CGVectorMake(6.5/7.0, 0.75)]; swipeEnd = [calendar coordinateWithNormalizedOffset:CGVectorMake(6.5/7.0, 0.75)];
[swipeStart pressForDuration:0.8 thenDragToCoordinate:swipeEnd]; [swipeStart pressForDuration:0.8 thenDragToCoordinate:swipeEnd];
[calendar swipeDown]; [calendar swipeDown];

View File

@ -114,13 +114,20 @@ NS_ASSUME_NONNULL_END
self.dateFormatter = [[NSDateFormatter alloc] init]; self.dateFormatter = [[NSDateFormatter alloc] init];
self.dateFormatter.dateFormat = @"yyyy-MM-dd"; self.dateFormatter.dateFormat = @"yyyy-MM-dd";
self.minimumDate = [self.dateFormatter dateFromString:@"2020-02-03"]; self.minimumDate = [self.dateFormatter dateFromString:@"2016-02-03"];
self.maximumDate = [self.dateFormatter dateFromString:@"2023-04-10"]; self.maximumDate = [self.dateFormatter dateFromString:@"2021-04-10"];
self.calendar.accessibilityIdentifier = @"calendar"; self.calendar.accessibilityIdentifier = @"calendar";
[self loadCalendarEvents]; [self loadCalendarEvents];
/*
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
self.minimumDate = [self.dateFormatter dateFromString:@"2015-02-01"];
self.maximumDate = [self.dateFormatter dateFromString:@"2015-06-10"];
[self.calendar reloadData];
});
*/
} }
- (void)didReceiveMemoryWarning - (void)didReceiveMemoryWarning

View File

@ -64,7 +64,7 @@ NS_ASSUME_NONNULL_END
calendar.delegate = self; calendar.delegate = self;
calendar.placeholderType = FSCalendarPlaceholderTypeNone; calendar.placeholderType = FSCalendarPlaceholderTypeNone;
calendar.adjustsBoundingRectWhenChangingMonths = YES; calendar.adjustsBoundingRectWhenChangingMonths = YES;
calendar.currentPage = [self.dateFormatter dateFromString:@"2020-06-01"]; calendar.currentPage = [self.dateFormatter dateFromString:@"2016-06-01"];
calendar.firstWeekday = 2; calendar.firstWeekday = 2;
calendar.scrollDirection = FSCalendarScrollDirectionVertical; calendar.scrollDirection = FSCalendarScrollDirectionVertical;
[self.view addSubview:calendar]; [self.view addSubview:calendar];
@ -126,12 +126,12 @@ NS_ASSUME_NONNULL_END
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar - (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter dateFromString:@"2020-01-08"]; return [self.dateFormatter dateFromString:@"2016-01-08"];
} }
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar - (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter dateFromString:@"2023-10-08"]; return [self.dateFormatter dateFromString:@"2018-10-08"];
} }
- (void)dealloc - (void)dealloc

View File

@ -31,10 +31,10 @@ NS_ASSUME_NONNULL_END
self = [super init]; self = [super init];
if (self) { if (self) {
self.title = @"FSCalendar"; self.title = @"FSCalendar";
self.images = @{@"2020/11/01":[UIImage imageNamed:@"icon_cat"], self.images = @{@"2016/11/01":[UIImage imageNamed:@"icon_cat"],
@"2020/11/05":[UIImage imageNamed:@"icon_footprint"], @"2016/11/05":[UIImage imageNamed:@"icon_footprint"],
@"2020/11/20":[UIImage imageNamed:@"icon_cat"], @"2016/11/20":[UIImage imageNamed:@"icon_cat"],
@"2020/11/07":[UIImage imageNamed:@"icon_footprint"]}; @"2016/11/07":[UIImage imageNamed:@"icon_footprint"]};
} }
return self; return self;
} }
@ -65,7 +65,7 @@ NS_ASSUME_NONNULL_END
self.dateFormatter.dateFormat = @"yyyy/MM/dd"; self.dateFormatter.dateFormat = @"yyyy/MM/dd";
// [self.calendar selectDate:[self.dateFormatter dateFromString:@"2020/02/03"]]; // [self.calendar selectDate:[self.dateFormatter dateFromString:@"2016/02/03"]];
/* /*
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
@ -115,12 +115,12 @@ NS_ASSUME_NONNULL_END
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar - (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter dateFromString:@"2020/10/01"]; return [self.dateFormatter dateFromString:@"2016/10/01"];
} }
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar - (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter dateFromString:@"2023/10/10"]; return [self.dateFormatter dateFromString:@"2017/10/10"];
} }

View File

@ -91,7 +91,7 @@
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar - (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter dateFromString:@"2020-07-08"]; return [self.dateFormatter dateFromString:@"2016-07-08"];
} }
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar - (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar

View File

@ -54,18 +54,18 @@
self.calendar.appearance.caseOptions = FSCalendarCaseOptionsHeaderUsesUpperCase|FSCalendarCaseOptionsWeekdayUsesUpperCase; self.calendar.appearance.caseOptions = FSCalendarCaseOptionsHeaderUsesUpperCase|FSCalendarCaseOptionsWeekdayUsesUpperCase;
self.datesShouldNotBeSelected = @[@"2020/08/07", self.datesShouldNotBeSelected = @[@"2016/08/07",
@"2020/09/07", @"2016/09/07",
@"2020/10/07", @"2016/10/07",
@"2020/11/07", @"2016/11/07",
@"2020/12/07", @"2016/12/07",
@"2020/01/07", @"2016/01/07",
@"2020/02/07"]; @"2016/02/07"];
self.datesWithEvent = @[@"2020-12-03", self.datesWithEvent = @[@"2016-12-03",
@"2020-12-07", @"2016-12-07",
@"2020-12-15", @"2016-12-15",
@"2020-12-25"]; @"2016-12-25"];
self.lunarFormatter = [[LunarFormatter alloc] init]; self.lunarFormatter = [[LunarFormatter alloc] init];
} }
@ -81,8 +81,7 @@
if ([[UIDevice currentDevice].model hasPrefix:@"iPad"]) { if ([[UIDevice currentDevice].model hasPrefix:@"iPad"]) {
self.calendarHeightConstraint.constant = 400; self.calendarHeightConstraint.constant = 400;
} }
self.calendar.today = [self.dateFormatter1 dateFromString:@"2020/11/19"]; [self.calendar selectDate:[self.dateFormatter1 dateFromString:@"2016/12/05"] scrollToDate:YES];
// [self.calendar selectDate:[self.dateFormatter1 dateFromString:@"2020/11/09"] scrollToDate:YES];
self.calendar.accessibilityIdentifier = @"calendar"; self.calendar.accessibilityIdentifier = @"calendar";
@ -118,12 +117,12 @@
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar - (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter1 dateFromString:@"2020/10/01"]; return [self.dateFormatter1 dateFromString:@"2016/10/01"];
} }
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar - (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar
{ {
return [self.dateFormatter1 dateFromString:@"2023/05/31"]; return [self.dateFormatter1 dateFromString:@"2018/05/31"];
} }
#pragma mark - FSCalendarDelegate #pragma mark - FSCalendarDelegate

View File

@ -1,14 +1,14 @@
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = "FSCalendar" s.name = "FSCalendar"
s.version = "2.8.4" s.version = "2.8.1"
s.summary = "A superiorly awesome iOS7+ calendar control, compatible with Objective-C and Swift." s.summary = "A superiorly awesome iOS7+ calendar control, compatible with Objective-C and Swift."
s.homepage = "https://github.com/WenchaoD/FSCalendar" s.homepage = "https://github.com/WenchaoD/FSCalendar"
s.screenshots = "https://cloud.githubusercontent.com/assets/5186464/10262249/4fabae40-69f2-11e5-97ab-afbacd0a3da2.jpg" s.screenshots = "https://cloud.githubusercontent.com/assets/5186464/10262249/4fabae40-69f2-11e5-97ab-afbacd0a3da2.jpg"
s.license = 'MIT' s.license = 'MIT'
s.author = { "Wenchao Ding" => "f33chobits@gmail.com" } s.author = { "Wenchao Ding" => "f33chobits@gmail.com" }
s.source = { :git => "https://github.com/TouchInstinct/FSCalendar.git", :tag => s.version.to_s } s.source = { :git => "https://github.com/WenchaoD/FSCalendar.git", :tag => s.version.to_s }
s.platform = :ios s.platform = :ios
s.ios.deployment_target = '8.0' s.ios.deployment_target = '8.0'

View File

@ -155,7 +155,7 @@ typedef NS_ENUM(NSUInteger, FSCalendarOrientation) {
_firstWeekday = 1; _firstWeekday = 1;
[self invalidateDateTools]; [self invalidateDateTools];
_today = [self.gregorian startOfDayForDate:[NSDate date]]; _today = [self.gregorian dateBySettingHour:0 minute:0 second:0 ofDate:[NSDate date] options:0];
_currentPage = [self.gregorian fs_firstDayOfMonth:_today]; _currentPage = [self.gregorian fs_firstDayOfMonth:_today];
@ -699,7 +699,7 @@ typedef NS_ENUM(NSUInteger, FSCalendarOrientation) {
_today = nil; _today = nil;
} else { } else {
FSCalendarAssertDateInBounds(today,self.gregorian,self.minimumDate,self.maximumDate); FSCalendarAssertDateInBounds(today,self.gregorian,self.minimumDate,self.maximumDate);
_today = [self.gregorian startOfDayForDate:today]; _today = [self.gregorian dateBySettingHour:0 minute:0 second:0 ofDate:today options:0];
} }
if (self.hasValidateVisibleLayout) { if (self.hasValidateVisibleLayout) {
[self.visibleCells makeObjectsPerformSelector:@selector(setDateIsToday:) withObject:nil]; [self.visibleCells makeObjectsPerformSelector:@selector(setDateIsToday:) withObject:nil];
@ -717,7 +717,7 @@ typedef NS_ENUM(NSUInteger, FSCalendarOrientation) {
{ {
[self requestBoundingDatesIfNecessary]; [self requestBoundingDatesIfNecessary];
if (self.floatingMode || [self isDateInDifferentPage:currentPage]) { if (self.floatingMode || [self isDateInDifferentPage:currentPage]) {
currentPage = [self.gregorian startOfDayForDate:currentPage]; currentPage = [self.gregorian dateBySettingHour:0 minute:0 second:0 ofDate:currentPage options:0];
if ([self isPageInRange:currentPage]) { if ([self isPageInRange:currentPage]) {
[self scrollToPageForDate:currentPage animated:animated]; [self scrollToPageForDate:currentPage animated:animated];
} }
@ -1035,7 +1035,7 @@ typedef NS_ENUM(NSUInteger, FSCalendarOrientation) {
- (void)deselectDate:(NSDate *)date - (void)deselectDate:(NSDate *)date
{ {
date = [self.gregorian startOfDayForDate:date]; date = [self.gregorian dateBySettingHour:0 minute:0 second:0 ofDate:date options:0];
if (![_selectedDates containsObject:date]) { if (![_selectedDates containsObject:date]) {
return; return;
} }
@ -1058,7 +1058,7 @@ typedef NS_ENUM(NSUInteger, FSCalendarOrientation) {
FSCalendarAssertDateInBounds(date,self.gregorian,self.minimumDate,self.maximumDate); FSCalendarAssertDateInBounds(date,self.gregorian,self.minimumDate,self.maximumDate);
NSDate *targetDate = [self.gregorian startOfDayForDate:date]; NSDate *targetDate = [self.gregorian dateBySettingHour:0 minute:0 second:0 ofDate:date options:0];
NSIndexPath *targetIndexPath = [self.calculator indexPathForDate:targetDate]; NSIndexPath *targetIndexPath = [self.calculator indexPathForDate:targetDate];
BOOL shouldSelect = YES; BOOL shouldSelect = YES;
@ -1532,9 +1532,9 @@ typedef NS_ENUM(NSUInteger, FSCalendarOrientation) {
_needsRequestingBoundingDates = NO; _needsRequestingBoundingDates = NO;
self.formatter.dateFormat = @"yyyy-MM-dd"; self.formatter.dateFormat = @"yyyy-MM-dd";
NSDate *newMin = [self.dataSourceProxy minimumDateForCalendar:self]?:[self.formatter dateFromString:@"1970-01-01"]; NSDate *newMin = [self.dataSourceProxy minimumDateForCalendar:self]?:[self.formatter dateFromString:@"1970-01-01"];
newMin = [self.gregorian startOfDayForDate:newMin]; newMin = [self.gregorian dateBySettingHour:0 minute:0 second:0 ofDate:newMin options:0];
NSDate *newMax = [self.dataSourceProxy maximumDateForCalendar:self]?:[self.formatter dateFromString:@"2099-12-31"]; NSDate *newMax = [self.dataSourceProxy maximumDateForCalendar:self]?:[self.formatter dateFromString:@"2099-12-31"];
newMax = [self.gregorian startOfDayForDate:newMax]; newMax = [self.gregorian dateBySettingHour:0 minute:0 second:0 ofDate:newMax options:0];
NSAssert([self.gregorian compareDate:newMin toDate:newMax toUnitGranularity:NSCalendarUnitDay] != NSOrderedDescending, @"The minimum date of calendar should be earlier than the maximum."); NSAssert([self.gregorian compareDate:newMin toDate:newMax toUnitGranularity:NSCalendarUnitDay] != NSOrderedDescending, @"The minimum date of calendar should be earlier than the maximum.");

View File

@ -29,8 +29,7 @@ typedef NS_ENUM(NSUInteger, FSCalendarSeparators) {
typedef NS_OPTIONS(NSUInteger, FSCalendarCaseOptions) { typedef NS_OPTIONS(NSUInteger, FSCalendarCaseOptions) {
FSCalendarCaseOptionsHeaderUsesDefaultCase = 0, FSCalendarCaseOptionsHeaderUsesDefaultCase = 0,
FSCalendarCaseOptionsHeaderUsesUpperCase = 1 << 0, FSCalendarCaseOptionsHeaderUsesUpperCase = 1,
FSCalendarCaseOptionsHeaderUsesCapitalized = 1 << 1,
FSCalendarCaseOptionsWeekdayUsesDefaultCase = 0 << 4, FSCalendarCaseOptionsWeekdayUsesDefaultCase = 0 << 4,
FSCalendarCaseOptionsWeekdayUsesUpperCase = 1 << 4, FSCalendarCaseOptionsWeekdayUsesUpperCase = 1 << 4,
@ -64,11 +63,6 @@ typedef NS_OPTIONS(NSUInteger, FSCalendarCaseOptions) {
*/ */
@property (strong, nonatomic) UIFont *headerTitleFont; @property (strong, nonatomic) UIFont *headerTitleFont;
/**
* The offset of the month header from default position.
*/
@property (assign, nonatomic) CGPoint headerTitleOffset;
/** /**
* The offset of the day text from default position. * The offset of the day text from default position.
*/ */
@ -109,21 +103,11 @@ typedef NS_OPTIONS(NSUInteger, FSCalendarCaseOptions) {
*/ */
@property (strong, nonatomic) UIColor *headerTitleColor; @property (strong, nonatomic) UIColor *headerTitleColor;
/**
* The color oh month header separator
*/
@property (strong, nonatomic) UIColor *headerSeparatorColor;
/** /**
* The date format of the month header. * The date format of the month header.
*/ */
@property (strong, nonatomic) NSString *headerDateFormat; @property (strong, nonatomic) NSString *headerDateFormat;
/**
* The text alignment of the month header.
*/
@property (assign, nonatomic) NSTextAlignment headerTitleAlignment;
/** /**
* The alpha value of month label staying on the fringes. * The alpha value of month label staying on the fringes.
*/ */

View File

@ -36,11 +36,8 @@
_headerTitleFont = [UIFont systemFontOfSize:FSCalendarStandardHeaderTextSize]; _headerTitleFont = [UIFont systemFontOfSize:FSCalendarStandardHeaderTextSize];
_headerTitleColor = FSCalendarStandardTitleTextColor; _headerTitleColor = FSCalendarStandardTitleTextColor;
_headerSeparatorColor = FSCalendarStandardLineColor;
_headerDateFormat = @"MMMM yyyy"; _headerDateFormat = @"MMMM yyyy";
_headerMinimumDissolvedAlpha = 0.2; _headerMinimumDissolvedAlpha = 0.2;
_headerTitleOffset = CGPointZero;
_headerTitleAlignment = NSTextAlignmentCenter;
_weekdayTextColor = FSCalendarStandardTitleTextColor; _weekdayTextColor = FSCalendarStandardTitleTextColor;
_caseOptions = FSCalendarCaseOptionsHeaderUsesDefaultCase|FSCalendarCaseOptionsWeekdayUsesDefaultCase; _caseOptions = FSCalendarCaseOptionsHeaderUsesDefaultCase|FSCalendarCaseOptionsWeekdayUsesDefaultCase;
@ -114,13 +111,6 @@
} }
} }
- (void)setHeaderTitleOffset:(CGPoint)headerTitleOffset {
if (!CGPointEqualToPoint(_headerTitleOffset, headerTitleOffset)) {
_headerTitleOffset = headerTitleOffset;
[self.calendar configureAppearance];
}
}
- (void)setTitleOffset:(CGPoint)titleOffset - (void)setTitleOffset:(CGPoint)titleOffset
{ {
if (!CGPointEqualToPoint(_titleOffset, titleOffset)) { if (!CGPointEqualToPoint(_titleOffset, titleOffset)) {
@ -412,14 +402,6 @@
} }
} }
- (void)setHeaderSeparatorColor:(UIColor *)headerSeparatorColor
{
if (![_headerSeparatorColor isEqual:headerSeparatorColor]) {
_headerSeparatorColor = headerSeparatorColor;
[self.calendar configureAppearance];
}
}
- (void)setHeaderMinimumDissolvedAlpha:(CGFloat)headerMinimumDissolvedAlpha - (void)setHeaderMinimumDissolvedAlpha:(CGFloat)headerMinimumDissolvedAlpha
{ {
if (_headerMinimumDissolvedAlpha != headerMinimumDissolvedAlpha) { if (_headerMinimumDissolvedAlpha != headerMinimumDissolvedAlpha) {
@ -436,14 +418,6 @@
} }
} }
- (void)setHeaderTitleAlignment:(NSTextAlignment)headerTitleAlignment
{
if (_headerTitleAlignment != headerTitleAlignment) {
_headerTitleAlignment = headerTitleAlignment;
[self.calendar configureAppearance];
}
}
- (void)setCaseOptions:(FSCalendarCaseOptions)caseOptions - (void)setCaseOptions:(FSCalendarCaseOptions)caseOptions
{ {
if (_caseOptions != caseOptions) { if (_caseOptions != caseOptions) {

View File

@ -221,7 +221,7 @@
if (self.calendar.placeholderType == FSCalendarPlaceholderTypeFillSixRows) return 6; if (self.calendar.placeholderType == FSCalendarPlaceholderTypeFillSixRows) return 6;
NSNumber *rowCount = self.rowCounts[month]; NSNumber *rowCount = self.rowCounts[month];
if (rowCount == nil) { if (!rowCount) {
NSDate *firstDayOfMonth = [self.gregorian fs_firstDayOfMonth:month]; NSDate *firstDayOfMonth = [self.gregorian fs_firstDayOfMonth:month];
NSInteger weekdayOfFirstDay = [self.gregorian component:NSCalendarUnitWeekday fromDate:firstDayOfMonth]; NSInteger weekdayOfFirstDay = [self.gregorian component:NSCalendarUnitWeekday fromDate:firstDayOfMonth];
NSInteger numberOfDaysInMonth = [self.gregorian fs_numberOfDaysInMonth:month]; NSInteger numberOfDaysInMonth = [self.gregorian fs_numberOfDaysInMonth:month];

View File

@ -171,7 +171,7 @@
components.day = - (weekdayComponents.weekday - self.firstWeekday); components.day = - (weekdayComponents.weekday - self.firstWeekday);
components.day = (components.day-7) % 7; components.day = (components.day-7) % 7;
NSDate *firstDayOfWeek = [self dateByAddingComponents:components toDate:week options:0]; NSDate *firstDayOfWeek = [self dateByAddingComponents:components toDate:week options:0];
firstDayOfWeek = [self startOfDayForDate:firstDayOfWeek]; firstDayOfWeek = [self dateBySettingHour:0 minute:0 second:0 ofDate:firstDayOfWeek options:0];
components.day = NSIntegerMax; components.day = NSIntegerMax;
return firstDayOfWeek; return firstDayOfWeek;
} }
@ -184,7 +184,7 @@
components.day = - (weekdayComponents.weekday - self.firstWeekday); components.day = - (weekdayComponents.weekday - self.firstWeekday);
components.day = (components.day-7) % 7 + 6; components.day = (components.day-7) % 7 + 6;
NSDate *lastDayOfWeek = [self dateByAddingComponents:components toDate:week options:0]; NSDate *lastDayOfWeek = [self dateByAddingComponents:components toDate:week options:0];
lastDayOfWeek = [self startOfDayForDate:lastDayOfWeek]; lastDayOfWeek = [self dateBySettingHour:0 minute:0 second:0 ofDate:lastDayOfWeek options:0];
components.day = NSIntegerMax; components.day = NSIntegerMax;
return lastDayOfWeek; return lastDayOfWeek;
} }

View File

@ -156,8 +156,8 @@
FSCalendarAppearance *appearance = self.calendar.appearance; FSCalendarAppearance *appearance = self.calendar.appearance;
cell.titleLabel.font = appearance.headerTitleFont; cell.titleLabel.font = appearance.headerTitleFont;
cell.titleLabel.textColor = appearance.headerTitleColor; cell.titleLabel.textColor = appearance.headerTitleColor;
cell.titleLabel.textAlignment = appearance.headerTitleAlignment;
_calendar.formatter.dateFormat = appearance.headerDateFormat; _calendar.formatter.dateFormat = appearance.headerDateFormat;
BOOL usesUpperCase = (appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase;
NSString *text = nil; NSString *text = nil;
switch (self.calendar.transitionCoordinator.representingScope) { switch (self.calendar.transitionCoordinator.representingScope) {
case FSCalendarScopeMonth: { case FSCalendarScopeMonth: {
@ -189,13 +189,7 @@
break; break;
} }
} }
BOOL usesUpperCase = (appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase; text = usesUpperCase ? text.uppercaseString : text;
BOOL usesCapitalized = (appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesCapitalized;
if (usesUpperCase) {
text = text.uppercaseString;
} else if (usesCapitalized) {
text = text.capitalizedString;
}
cell.titleLabel.text = text; cell.titleLabel.text = text;
[cell setNeedsLayout]; [cell setNeedsLayout];
} }
@ -217,6 +211,7 @@
self = [super initWithFrame:frame]; self = [super initWithFrame:frame];
if (self) { if (self) {
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectZero]; UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
titleLabel.textAlignment = NSTextAlignmentCenter;
titleLabel.lineBreakMode = NSLineBreakByWordWrapping; titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
titleLabel.numberOfLines = 0; titleLabel.numberOfLines = 0;
[self.contentView addSubview:titleLabel]; [self.contentView addSubview:titleLabel];
@ -234,11 +229,8 @@
- (void)layoutSubviews - (void)layoutSubviews
{ {
[super layoutSubviews]; [super layoutSubviews];
CGPoint titleHeaderOffset = self.header.calendar.appearance.headerTitleOffset; self.titleLabel.frame = self.contentView.bounds;
self.titleLabel.frame = CGRectOffset(self.contentView.bounds,
titleHeaderOffset.x,
titleHeaderOffset.y);
if (self.header.scrollDirection == UICollectionViewScrollDirectionHorizontal) { if (self.header.scrollDirection == UICollectionViewScrollDirectionHorizontal) {
CGFloat position = [self.contentView convertPoint:CGPointMake(CGRectGetMidX(self.contentView.bounds), CGRectGetMidY(self.contentView.bounds)) toView:self.header].x; CGFloat position = [self.contentView convertPoint:CGPointMake(CGRectGetMidX(self.contentView.bounds), CGRectGetMidY(self.contentView.bounds)) toView:self.header].x;

View File

@ -69,12 +69,8 @@
CGFloat titleHeight = [@"1" sizeWithAttributes:@{NSFontAttributeName:self.calendar.appearance.headerTitleFont}].height*1.5 + weekdayMargin*3; CGFloat titleHeight = [@"1" sizeWithAttributes:@{NSFontAttributeName:self.calendar.appearance.headerTitleFont}].height*1.5 + weekdayMargin*3;
_bottomBorder.frame = CGRectMake(0, _contentView.fs_height-weekdayHeight-weekdayMargin*2, _contentView.fs_width, 1.0); _bottomBorder.frame = CGRectMake(0, _contentView.fs_height-weekdayHeight-weekdayMargin*2, _contentView.fs_width, 1.0);
_titleLabel.frame = CGRectMake(0, _bottomBorder.fs_bottom-titleHeight-weekdayMargin, titleWidth,titleHeight);
CGPoint titleHeaderOffset = self.calendar.appearance.headerTitleOffset;
_titleLabel.frame = CGRectMake(titleHeaderOffset.x,
titleHeaderOffset.y+_bottomBorder.fs_bottom-titleHeight-weekdayMargin,
titleWidth,
titleHeight);
} }
#pragma mark - Properties #pragma mark - Properties
@ -94,8 +90,6 @@
{ {
_titleLabel.font = self.calendar.appearance.headerTitleFont; _titleLabel.font = self.calendar.appearance.headerTitleFont;
_titleLabel.textColor = self.calendar.appearance.headerTitleColor; _titleLabel.textColor = self.calendar.appearance.headerTitleColor;
_titleLabel.textAlignment = self.calendar.appearance.headerTitleAlignment;
_bottomBorder.backgroundColor = self.calendar.appearance.headerSeparatorColor;
[self.weekdayView configureAppearance]; [self.weekdayView configureAppearance];
} }
@ -103,16 +97,9 @@
{ {
_month = month; _month = month;
_calendar.formatter.dateFormat = self.calendar.appearance.headerDateFormat; _calendar.formatter.dateFormat = self.calendar.appearance.headerDateFormat;
BOOL usesUpperCase = (self.calendar.appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase; BOOL usesUpperCase = (self.calendar.appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase;
BOOL usesCapitalized = (self.calendar.appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesCapitalized;
NSString *text = [_calendar.formatter stringFromDate:_month]; NSString *text = [_calendar.formatter stringFromDate:_month];
if (usesUpperCase) { text = usesUpperCase ? text.uppercaseString : text;
text = text.uppercaseString;
} else if (usesCapitalized) {
text = text.capitalizedString;
}
self.titleLabel.text = text; self.titleLabel.text = text;
} }

View File

@ -9,20 +9,18 @@
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>8.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string> <string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>2.8.3</string> <string>$(MARKETING_VERSION)</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>282</string> <string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
<string></string> <string></string>
<key>net.goout.GoOut.groupIdentifier</key>
<string>$(GROUP_IDENTIFIER)</string>
</dict> </dict>
</plist> </plist>

View File

@ -1 +0,0 @@
../FSCalendar.h

View File

@ -1 +0,0 @@
../FSCalendarAppearance.h

View File

@ -1 +0,0 @@
../FSCalendarCalculator.h

View File

@ -1 +0,0 @@
../FSCalendarCell.h

View File

@ -1 +0,0 @@
../FSCalendarCollectionView.h

View File

@ -1 +0,0 @@
../FSCalendarCollectionViewLayout.h

View File

@ -1 +0,0 @@
../FSCalendarConstants.h

View File

@ -1 +0,0 @@
../FSCalendarDelegationFactory.h

View File

@ -1 +0,0 @@
../FSCalendarDelegationProxy.h

View File

@ -1 +0,0 @@
../FSCalendarDynamicHeader.h

View File

@ -1 +0,0 @@
../FSCalendarExtensions.h

View File

@ -1 +0,0 @@
../FSCalendarHeaderView.h

View File

@ -1 +0,0 @@
../FSCalendarSeparatorDecorationView.h

View File

@ -1 +0,0 @@
../FSCalendarStickyHeader.h

View File

@ -1 +0,0 @@
../FSCalendarTransitionCoordinator.h

View File

@ -1 +0,0 @@
../FSCalendarWeekdayView.h

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -1,20 +0,0 @@
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "FSCalendar",
platforms: [.iOS(.v9)],
products: [
.library(
name: "FSCalendar",
targets: ["FSCalendar"]
),
],
targets: [
.target(
name: "FSCalendar",
dependencies: [],
path: "FSCalendar/"
)
]
)

View File

@ -87,13 +87,6 @@ end
github "WenchaoD/FSCalendar" github "WenchaoD/FSCalendar"
``` ```
## SPM:
Add dependency:
```swift
.package(url: "https://github.com/WenchaoD/FSCalendar.git", from: "2.8.3")
```
## Manually: ## Manually:
* Drag all files under `FSCalendar` folder into your project. 👍 * Drag all files under `FSCalendar` folder into your project. 👍