日历手机笔记本同步日历后面的sk,ch什么意思

主题帖子积分
彩虹糖:17
oppor9sk日历已设置显示日历法定假日,但无显示休字
&查看:535
来自OPPOR9sk手机
公测版-170526
工具 > 日历
必现(90%-100%)
oppor9sk日历已设置显示日历法定假日,但无显示休字
oppor9sk日历已设置显示日历法定假日,但无显示休字
您所在的用户组无法下载或查看附件
满意度评价
彩虹糖6061
主题帖子积分
不是天桥上算命的,解答不出你喜欢的答案
彩虹糖:6061
工程师看一下。
主题帖子积分
彩虹糖:17
来自OPPOR9sk手机
我晕,怎么搞啊
彩虹糖12905
主题帖子积分
彩虹糖:12905
我晕,怎么搞啊
楼主 麻烦重启一下手机再进入 如果还是没有显示 麻烦补充一下log
【ColorOS解答组】ColorOS 3.0 常规log抓取教程
(出处: ColorOS官方社区,OPPO手机系统论坛)
彩虹糖20853
主题帖子积分
彩虹糖:20853
楼主您好:由于您长时间没有补充完整该反馈帖必须的有效信息,暂时将您的这个反馈帖关闭。如果问题还存在请补充完整相关信息后@ColorOS,我们会帮你把帖子流转给工程师处理,谢谢!
仅限在新年期间申请开放
申请条件:限时申请,截止日期8月10日,单身快乐
申请条件:截图公测qq群中的证明信息,提供公测名称和群里的号码。截图并发私信给管理员阳光
申请条件:截图内测qq群中的证明信息,提供内测名称和群里的号码。截图并发私信给管理员阳光
申请条件:截图微博关注ColorOS账号,并私信发图片给管理阳光
申请条件:截图微信关注ColorOS账号,并私信发图片给管理阳光
申请条件:限时申请,截止日期2月11日,鸡年大吉。iOS 高可控性日历基础组件 -SKCalendarView 的使用和实现思路的分享-ZAKER新闻
CocoaChina
简述SKCalendarView是一个高可控性的日历基础组件,为了提高应用的自由度,默认只提供了日历部分的视图封装,但不涵盖切换月份按钮、年月分显示等非关键性控件,但请不要担心,SKCalendarView为你提供了多样性的API,你可以很轻松的拿到这些信息去展示在你自己的自定义控件中,以及对当前UI的修改:如:替换日历主题图片、节假日或特殊日期的日历背景、各种现实颜色等等。不仅如此,SKCalendarView还为你封装了公历、农历、节假日以及中国24节气的核心算法,即使你觉得默认的视图并不合胃口,也可以直接快速的利用这套算法创造出一个全新的日历控件。最后,SKCalendarView还提供了一些简单的切换动画,如果你不喜欢它,可以忽略掉,用自己的,这里完全不会受到任何限制。如果觉得还不错,点个star吧~效果图最新更新:一.如何使用1.如何开始1.从GitHub上Clone--&, 然后查看Demo (由于使用cocoaPods管理,请打开xcworkspace工程进行查看)2.在项目中使用SKCalendarView,直接将目录下的SKCalendarView文件夹拷贝到工程中,或在podfile文件中添加pod 'SKCalendarView'3.SKCalendarView的默认视图基于Masonry布局,如果需要使用, 请确保你的工程里已存在Masonry,4.如果遇到其它问题,欢迎提交issues,我会及时回复2.使用方法#import "SKConstant.h"@property (nonatomic, strong) SKCalendarView * calendarV日历设置_calendarView.calendarTodayTitleColor = [UIColor redColor];// 今天标题字体颜色_calendarView.calendarTodayTitle = @"今日";// 今天下标题_calendarView.dateColor = [UIColor orangeColor];// 今天日期数字背景颜色_calendarView.calendarTodayColor = [UIColor whiteColor];// 今天日期字体颜色_calendarView.dayoffInWeekColor = [UIColor redColor];_calendarView.springColor = [UIColor colorWithRed:48 / 255.0 green:200 / 255.0 blue:104 / 255.0 alpha:1];// 春季节气颜色_calendarView.summerColor = [UIColor colorWithRed:18 / 255.0 green:96 / 255.0 blue:0 alpha:8];// 夏季节气颜色_calendarView.autumnColor = [UIColor colorWithRed:232 / 255.0 green:195 / 255.0 blue:0 / 255.0 alpha:1];// 秋季节气颜色_calendarView.winterColor = [UIColor colorWithRed:77 / 255.0 green:161 / 255.0 blue:255 / 255.0 alpha:1];// 冬季节气颜色_calendarView.holidayColor = [UIColor redColor];//节日字体颜色self.lastMonth = _calendarView.lastM// 获取上个月的月份self.nextMonth = _calendarView.nextM// 获取下个月的月份翻页动画[SKCalendarAnimationManage animationWithView:self.calendarView andEffect:SK_ANIMATION_REVEAL isNext:YES];获取农历年self.chineseYearLabel.text = [NSString stringWithFormat:@"%@年", self.calendarView.chineseYear];// 农历年获取农历月日self.chineseMonthAndDayLabel.text = [NSString stringWithFormat:@"%@%@", self.calendarView.chineseMonth, getNoneNil(self.calendarView.chineseCalendarDay[row])];获取公历年/月self.yearLabel.text = [NSString stringWithFormat:@"%@年%@月", @(self.calendarView.year), @(self.calendarView.month)];// 公历年获取节日/节气self.holidayLabel.text = [self.calendarView getHolidayAndSolarTermsWithChineseDay:getNoneNil(self.calendarView.chineseCalendarDay[row])];查询指定日期[self.calendarView checkCalendarWithAppointDate:[NSDate date]];日历UI配置@property (nonatomic, strong) UIColor * weekBackgroundC// 周的背景颜色@property (nonatomic, strong) UIColor * normalInWeekC// 周(除双休日外)字体颜色@property (nonatomic, strong) UIColor * dayoffInWeekC// 双休日字体颜色@property (nonatomic, strong) UIColor * calendarTodayC// 本日日期字体颜色@property (nonatomic, strong) UIColor * dateC// 日期小背景颜色@property (nonatomic, strong) UIImage * dateI// 日期图片@property (nonatomic, strong) UIColor * holidayBackgroundC// 节日背景颜色@property (nonatomic, strong) UIColor * solarTeromBackgroundC// 节气背景颜色@property (nonatomic, strong) UIColor * dateBackgroundC// 日期背景颜色(非节日&节气)@property (nonatomic, strong) UIImage * dateBackgroundI// 日期背景图片@property (nonatomic, strong) NSString * calendarTodayT// 本日日期标题@property (nonatomic, strong) UIColor * calendarTodayTitleC// 本日日期标题字体颜色@property (nonatomic, strong) UIColor * calendarTitleC// 日期标题字体颜色@property (nonatomic, strong) UIColor * holidayC// 节日标题字体颜色@property (nonatomic, strong) UIColor * springC// 春季节气颜色@property (nonatomic, strong) UIColor * summerC// 夏季节气颜色@property (nonatomic, strong) UIColor * autumnC// 秋季节气颜色@property (nonatomic, strong) UIColor * winterC// 冬季节气颜色@property (nonatomic, assign) BOOL enableClickE// 开启点击效果@property (nonatomic, assign) BOOL enableDateRoundC// 开启日期圆角获取点击到的日期注意:这里需要先遵循代理协议- (void)selectDateWithRow:(NSUInteger)row二.如何实现1.设计思路总体上SKCalendarView仍然才去模块化思路,主要分为三个部分View(视图)、Animation(动画)以及Algorithm(算法)View主要负责处理外部对UI的配置信息、日历核心部分的展示、UI的刷新、效果的处理和界面控件的创建和布局约束等Animation主要负责日历翻页时的动画效果及点击日期的动画效果的处理Algorithm是整个SKCalendarView最核心的部分,负责了公历、农历、节假日以及中国24节气的核心算法,以及对日期查询的处理反馈2.功能实现2.1布局思路我们先要搞清楚日历是什么。所谓日历,就是一年当中12个月份的日期展示,每个月当中的日期数量由28~31天不等,这里指的是公历, 而农历当中每个月最多30天,虽然在计算方法上是有很大差别,但好在当代日历都是以公历为展示基准,所以只需要考虑公历的每月天数。因为要考虑到展示上的美观性,一般都是采用正方形来展示,由于一周是固定的7天,所以我们日历的横向子控件数量也必须为7。但是这样问题就来了,由于需要考虑到与日期上方的周时间相对应,并且除了2月没有哪个月是的天数的7的倍数,也就做不到整除而导致无法形成正方形布局,所以我们不能直接用和月份天数相等的子控件数量来展示我们的日历,经过思考,我决定采取填充数据的方式来达到正方形展示的目的:首先规划整体子控件数量,由于横向固定是7,那么纵向就由最多的一个月31天算,31 / 7 ≈ 4.4, 既然超过了4行,那么我们就放5行吧: 5 x 7 = 35,子控件放置35个如何?但经过尝试后,发现这并不可取:因为我们这里理想状态下的31天是以这个月的第一天恰好是周日 (周日为公历一周的开始) 为前提条件的,那么显然在现实生活里并不可能每个月都恰好第一天都是周日,所以,我们就需要考虑到需要显示的这个月的第一天是周几这个问题,众所周知,一周有7天的时间,那么每个月的第一天就有7种可能。做最多的打算,假设这个月总共有31天,而第一天恰好是周六,那么在这个月的1日这一天之前就有6天是没有日期的,结合我们之前计算的数量加上周六前的6天: 35 + 6 = 41,子控件放41个又如何呢?当然是不行了,因为需要正方形的日历,所以至少要成为7的倍数,最接近这个倍数的值就是我们要的答案:42.实现在基础控件的布局上,我们采取最简便的方式:周和日期我们分别使用了weekCollectionView、calendarCollectionView这两个UICollectionView来完成而月份的背景数字monthBackgroundLabel作为最上面一层采用的是UILabel,在设置了其size和weight后,效果就如同背景图一样// 周
UICollectionViewFlowLayout * layout = [[UICollectionViewFlowLayout alloc] init];
layout.scrollDirection = UICollectionViewScrollDirectionV
self.weekCollectionView = [[UICollectionView alloc] initWithFrame:self.frame collectionViewLayout:layout];
[self addSubview:self.weekCollectionView];
self.weekCollectionView.backgroundColor = [UIColor whiteColor];
self.weekCollectionView.delegate =
self.weekCollectionView.dataSource =
[self.weekCollectionView registerClass:[SKWeekCollectionViewCell class] forCellWithReuseIdentifier:@"Week"];
[self.weekCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self);
make.left.equalTo(self);
make.right.equalTo(self);
make.height.mas_offset(self.frame.size.height / 7.5);
make.height.mas_greaterThanOrEqualTo(40).priorityHigh();
UICollectionViewFlowLayout * dateLayout = [[UICollectionViewFlowLayout alloc] init];
dateLayout.scrollDirection = UICollectionViewScrollDirectionV
self.calendarCollectionView = [[UICollectionView alloc] initWithFrame:self.frame collectionViewLayout:dateLayout];
[self addSubview:self.calendarCollectionView];
self.calendarCollectionView.backgroundColor = [UIColor whiteColor];
self.calendarCollectionView.delegate =
self.calendarCollectionView.dataSource =
[self.calendarCollectionView registerClass:[SKCalendarCollectionViewCell class] forCellWithReuseIdentifier:@"Calendar"];
[self.calendarCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.weekCollectionView.mas_bottom);
make.left.equalTo(self);
make.right.equalTo(self);
make.bottom.equalTo(self);
// 背景月份
self.monthBackgroundLabel = [UILabel new];
[self addSubview:self.monthBackgroundLabel];
self.monthBackgroundLabel.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:200 / 2550.f];
self.monthBackgroundLabel.font = [UIFont systemFontOfSize:150.0f weight:120.f];
self.monthBackgroundLabel.textAlignment = NSTextAlignmentC
[self.monthBackgroundLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(0, 0, 0, 0));
}];对日历高度的控制由于不同的月份的第一天所处的周时间不同,导致日历的有效日期 (有日期显示的) 行数不固定,如:当本月第一天为周日时,最多只占35个子控件位数,而我们一开始设置的子控件数量值是42,这样一来就会空出一行的空白出来,这是很不美观的。所以日历的高度对于我们来说就是一个把控的值,如何来保证可以根据每个月的天数来控制日历的高度呢,在SKCalendarView中采取了以下的办法:if (self.calendarManage.isIncreaseHeight == YES) {// 根据isIncreaseHeight来判断是否需要更改高度
[self.calendarCollectionView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_offset(6 * (self.frame.size.height / 7.5));
return 42;
if (self.calendarCollectionView.frame.size.height & 218) {
[self.calendarCollectionView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_offset(5 * (self.frame.size.height / 7.5));
return 35;
}日期点击效果的处理[SKCalendarAnimationManage clickEffectAnimationForView:self.baseView];2.2 日历算法这一部分算法是整个SKCalendarView最核心的部分SKCalendarManage以单例的模式封装了SKCalendarView全部的核心算法主要难点在于对个别不定期节日,如复活节的日期的计算等,以及24节气和农历的计算,推荐阅读《算法:计算中国农历》查看所选日期所处的月份:#pragma mark - 查看所选日期所处的月份- (void)checkThisMonthRecordFromToday:(NSDate *)today{
if (isEmpty(today)) {// 如果没有日期,默认今天
today = [NSDate date];
[self calculationThisMonthDays:today];// 计算本月天数
[self calculationThisMonthFirstDayInWeek:today];// 计算本月第一天是周几}#pragma mark - 计算本月天数- (void)calculationThisMonthDays:(NSDate *)days{
NSCalendar * calendar = [NSCalendar currentCalendar];
if (isEmpty(days)) {
days = [NSDate date];
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:days];
self.days = range.// 保存天数}#pragma mark - 计算本月第一天是周几- (void)calculationThisMonthFirstDayInWeek:(NSDate *){
if (isEmpty(date)) {
date = [NSDate date];
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents * comps = [[NSDateComponents alloc] init];
NSDateComponents * theComps = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSCalendarUnitDay | NSCalendarUnitWeekday | NSCalendarUnitMonth | NSCalendarUnitY
comps = [calendar components:unitFlags fromDate:date];
theComps = [calendar components:unitFlags fromDate:[NSDate date]];
self.theMonth = [theComps month];// 本月的月份
NSUInteger day = [comps day];// 是本月第几天
self.todayInMonth =
if (day & 1) {// 如果不是本月第一天
// 将日期推算到本月第一天
NSInteger hours = (day - 1) * -24;
date = [NSDate dateWithTimeInterval:hours * 60 * 60 sinceDate:date];
comps = [calendar components:unitFlags fromDate:date];
self.dayInWeek = [comps weekday];// 是周几
self.year = [comps year];// 公历年
self.month = [comps month];// 公里月
[self creatcalendarArrayWithDate:date];// 创建日历数组}这里的算法还有优化的必要,如果有朋友可以指点一二,不胜感激#pragma mark - 创建日历数组- (void)creatcalendarArrayWithDate:(NSDate *)date{
self.calendarDate = [NSMutableArray new];
self.chineseCalendarDate = [NSMutableArray new];
self.chineseCalendarDay = [NSMutableArray new];
for (NSInteger j = 0; j 由于农历、节假日都是在同一个位置展示,就放到了一个函数里1.复活节采用了Meeus/Jones/Butcher算法2.二十四节气采用了积日日计算公式F = 365.242 (y – 1900) + 6.2 + 15.22 x - 1.9 sin(0.262 x)探讨:这个函数当中24节气的算法在执行当中由于需要对积日进行计算,就需要处理这个基准日的日期转换,由于stringFromDate方法过于耗时,会导致一定的线程卡顿,目前我是将这24个节气根据月份分开来执行,然后使用单例NSDateFormatter来解决这个问题- (NSDateFormatter *)dateFormatter{
if (!_dateFormatter) {
_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setDateFormat:@"yyyy-MM-dd"];
return _dateF}- (NSDateFormatter *)strDateFormatter{
if (!_strDateFormatter) {
_strDateFormatter = [[NSDateFormatter alloc] init];
[_strDateFormatter setDateFormat:@"MM-dd"];
return _strDateF}- (NSDate *)baseDate{
if (!_baseDate) {
_baseDate = [self.dateFormatter dateFromString:@""];
return _baseD}#pragma mark - 计算农历日期- (NSString *)calculationChinaCalendarWithDate:(NSDate *)date dispalyHoliday:(BOOL)display{
if (isEmpty(date)) {
NSArray * chineseYears = @[@"甲子", @"乙丑", @"丙寅", @"丁卯", @"戊辰", @"己巳", @"庚午", @"辛未", @"壬申", @"癸酉", @"甲戌", @"乙亥", @"丙子", @"丁丑", @"戊寅", @"己卯", @"庚辰", @"辛己", @"壬午", @"癸未", @"甲申", @"乙酉", @"丙戌", @"丁亥", @"戊子", @"己丑", @"庚寅", @"辛卯", @"壬辰", @"癸巳", @"甲午", @"乙未", @"丙申", @"丁酉", @"戊戌", @"己亥", @"庚子", @"辛丑", @"壬寅", @"癸丑", @"甲辰", @"乙巳", @"丙午", @"丁未", @"戊申", @"己酉", @"庚戌", @"辛亥", @"壬子", @"癸丑", @"甲寅", @"乙卯", @"丙辰", @"丁巳", @"戊午", @"己未", @"庚申", @"辛酉", @"壬戌", @"癸亥"];
NSArray * chineseMonths = @[@"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月",
@"九月", @"十月", @"冬月", @"腊月"];
NSArray * chineseDays = @[@"初一", @"初二", @"初三", @"初四", @"初五", @"初六", @"初七", @"初八", @"初九", @"初十", @"十一", @"十二", @"十三", @"十四", @"十五", @"十六", @"十七", @"十八", @"十九", @"廿十", @"廿一", @"廿二", @"廿三", @"廿四", @"廿五", @"廿六", @"廿七", @"廿八", @"廿九", @"三十"];
NSCalendar * localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierChinese];
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth |
NSCalendarUnitD
NSDateComponents * localeComp = [localeCalendar components:unitFlags fromDate:date];
self.chineseYear = [chineseYears objectAtIndex:localeComp.year - 1];
NSString * m_str = [chineseMonths objectAtIndex:localeComp.month - 1];
self.chineseMonth = m_
NSString * d_str = [chineseDays objectAtIndex:localeComp.day - 1];
NSString * chineseCal_str = d_
// 农历节日
if([chineseMonths containsObject:m_str] && [d_str isEqualToString:@"初一"]) {
chineseCal_str = m_
if ([m_str isEqualToString:@"正月"] && [d_str isEqualToString:@"初一"]) {
chineseCal_str = @"春节";
chineseCal_str = @"初一";
} else if ([m_str isEqualToString:@"正月"] && [d_str isEqualToString:@"十五"]) {
chineseCal_str = @"元宵节";
} else if ([m_str isEqualToString:@"五月"] && [d_str isEqualToString:@"初五"]) {
chineseCal_str = @"端午节";
} else if ([m_str isEqualToString:@"七月"] && [d_str isEqualToString:@"初七"]) {
chineseCal_str = @"七夕";
} else if ([m_str isEqualToString:@"七月"] && [d_str isEqualToString:@"十五"]) {
chineseCal_str = @"中元节";
} else if ([m_str isEqualToString:@"八月"] && [d_str isEqualToString:@"十五"]) {
chineseCal_str = @"中秋节";
} else if ([m_str isEqualToString:@"九月"] && [d_str isEqualToString:@"初九"]) {
chineseCal_str = @"重阳节";
} else if ([m_str isEqualToString:@"腊月"] && [d_str isEqualToString:@"初八"]) {
chineseCal_str = @"腊八节";
} else if ([m_str isEqualToString:@"腊月"] && [d_str isEqualToString:@"廿三"]) {
chineseCal_str = @"小年";
} else if ([m_str isEqualToString:@"腊月"] && [d_str isEqualToString:@"三十"]) {
chineseCal_str = @"除夕";
// 公历节日
NSDictionary * Holidays = @{@"01-01":@"元旦",
@"02-14":@"情人节",
@"03-08":@"妇女节",
@"03-12":@"植树节",
@"04-01":@"愚人节",
@"05-01":@"劳动节",
@"05-04":@"青年节",
@"06-01":@"儿童节",
@"07-01":@"建党节",
@"08-01":@"建军节",
@"09-10":@"教师节",
@"10-01":@"国庆节",
@"12-24":@"平安夜",
@"12-25":@"圣诞节"};//
NSDateFormatter * dateFormatt= [[NSDateFormatter alloc] init];//
[dateFormatt setDateFormat:@"MM-dd"];
NSString * nowStr = [self.strDateFormatter stringFromDate:date];
// 复活节, Meeus/Jones/Butcher算法
NSUInteger a = self.year % 19;
NSUInteger b = self.year / 100;
NSUInteger c = self.year % 100;
NSUInteger d = b / 4;
NSUInteger e = b % 4;
NSUInteger f = (b + 8) / 25;
NSUInteger g = (b - f + 1) / 3;
NSUInteger h = (19 * a + b - d - g + 15) % 30;
NSUInteger i = c / 4;
NSUInteger k = c % 4;
NSUInteger l = (32 + (2 * e) + (2 * i) - h - k) % 7;
NSUInteger m = (a + (11 * h) + (22 * l)) / 451;
NSUInteger theMonth = (h + l - (7 * m) + 114) / 31;
NSUInteger day = ((h + l - (7 * m) + 114) % 31)+ 1;
NSString * easter = [NSString stringWithFormat:@"0%@-%@", @(theMonth), @(day)];
if ([easter isEqualToString:nowStr]) {
chineseCal_str = @"复活节";
NSArray * array = [Holidays allKeys];
if([array containsObject:nowStr]) {
chineseCal_str = [Holidays objectForKey:nowStr];
// 公历礼拜节日
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents * comps = [[NSDateComponents alloc] init];
NSInteger unit = NSCalendarUnitDay | NSCalendarUnitWeekday | NSCalendarUnitMonth | NSCalendarUnitY
comps = [calendar components:unit fromDate:date];
NSUInteger month = [comps month];
NSUInteger dayInMonth = [comps day];
switch (month) {
if (dayInMonth == 14) {
chineseCal_str = @"母亲节";
if (dayInMonth == 21) {
chineseCal_str = @"父亲节";
if (dayInMonth == 26) {
chineseCal_str = @"感恩节";
// 二十四节气, 将节气按月份拆开计算,否则由于计算积日所需日期转换stringFromDate方法过于耗时将会造成线程卡顿
NSString * solarTerms = @"";
switch (self.month) {// 过滤月份
for (NSInteger i = 0; i 这里的计算是整个线程里最耗时的地方,昨天用instruments查看这里的执行,竟然有8000x,我想最可能到这这个的原因就是dateFromString这里了,在我做了一些优化调整后,虽然已经不卡顿了,但不知道有什么更好的解决方案吗?#pragma mark - 计算二十四节气的具体日期/** * @param year 年份 * @param index 节气索引,0代表小寒,1代表大寒,其它节气按照顺序类推 */- (NSString *)calculationSolarTermsWithYear:(NSUInteger)year solarTermsIndex:(NSUInteger)index{
NSString * solarTerms = @"";
CGFloat base = 365.242 * (year - 1900) + 6.2 + (15.22 * index) - (1.9 * sinf(0.262 * index));// 计算积日
NSInteger hours = (base - 1) * 24;// 由于基准日为日,所以这里需要-1
NSDate * date = [NSDate dateWithTimeInterval:hours * 60 * 60 sinceDate:self.baseDate];
solarTerms = [self.strDateFormatter stringFromDate:date];
return solarT}2.3 动画+ (void)animationWithView:(UIView *)view andEffect:(SK_ANIMATION)effect isNext:(BOOL)next{
CATransition * transition = [CATransition animation];
if (next == YES) {// 向下翻页
switch (effect) {
case SK_ANIMATION_REVEAL:
transition.type = @"pageUnCurl";
transition.subtype = kCATransitionFromL
case SK_ANIMATION_RIPPLE:
transition.type = @"rippleEffect";
transition.subtype = kCATransitionFromL
case SK_ANIMATION_SUCK:
transition.type = @"suckEffect";
transition.subtype = kCATransitionFromL
switch (effect) {
case SK_ANIMATION_REVEAL:
transition.type = @"pageCurl";
transition.subtype = kCATransitionFromL
case SK_ANIMATION_RIPPLE:
transition.type = @"rippleEffect";
transition.subtype = kCATransitionFromR
case SK_ANIMATION_SUCK:
transition.type = @"suckEffect";
transition.subtype = kCATransitionFromR
transition.duration = 0.5;
[view.layer addAnimation:transition forKey:nil];}+ (void)clickEffectAnimationForView:(UIView *)view{
CABasicAnimation * scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
scaleAnimation.fromValue = [NSNumber numberWithFloat:1.3];
scaleAnimation.toValue = [NSNumber numberWithFloat:0.7];
scaleAnimation.duration = 0.1;
scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[view.layer addAnimation:scaleAnimation forKey:nil];}好了,以上就是本次内容的分享,如果能帮到你,我很开心,欢迎在文章下面留言,在文中提到的关于算法上的优化,希望能够得到大神的指点感谢你花时间阅读以上内容, 如果这个项目能够帮助到你,记得告诉我Email: 原网页已经由ZAKER转码以便在移动设备上查看
相关标签:
原网页已经由 ZAKER 转码排版
科技频道3小时前
科技频道昨天
科技频道7小时前
科技频道9小时前
科技频道2小时前
IT之家2小时前
网游圈里的那些事2小时前
爱范儿4小时前
TechWeb4小时前
三易生活1小时前
TechWeb4小时前
App精选6小时前
IT1684小时前
IT1684小时前
TechWeb7小时前

我要回帖

更多关于 ch3cosk 的文章

 

随机推荐