iOS自定义显示30天日历_ios 就近30天日期-程序员宅基地

技术标签: iOS Xcode Object-c  日历  

#pragma mark - 

#pragma mark 自定义日历表



- (void)createDefineCalander {

    [self getCurrentDays];

    [self getNextDays];

    _MsDateTimes = [NSMutableArray new];

    CGFloat buttonWidth = width(_calanderView.frame) / 7;

    int DAY_OF_MONTH = 30;

    NSInteger row = 0;

    NSInteger flag = 1;

    NSInteger k = 1;

    NSInteger j = 1;

    for (NSInteger i = _currentWeekday,index = _currentWeekday - 1,curDay = _currentNumberOfDaysInMonth ; i < DAY_OF_MONTH + index; i++) {

         UIButton *itemButton = [UIButton buttonWithType:UIButtonTypeCustom];

        if (i%7 == 0) {

            itemButton.frame = CGRectMake(index*buttonWidth, row*buttonWidth + buttonWidth, buttonWidth, buttonWidth);

            row++;

        }else {

            itemButton.frame = CGRectMake(index*buttonWidth, row*buttonWidth + buttonWidth, buttonWidth, buttonWidth);

        }

        [itemButton setTitleColor:LHColor(108, 108, 108) forState:UIControlStateNormal];

        itemButton.tag = 100+k;

        itemButton.layer.cornerRadius = buttonWidth/2.0;

        itemButton.clipsToBounds = YES;

        [itemButton addTarget:self action:@selector(itemAction:) forControlEvents:UIControlEventTouchUpInside];

        if(i == _currentWeekday) {

            [itemButton setTitle:@"今天" forState:UIControlStateNormal];

        } else {

            [itemButton setTitle:[NSString stringWithFormat:@"%ld",curDay] forState:UIControlStateNormal];

        }

        NSInteger monthLenth = _currentNumberOfDaysInMonth;

        if(flag == 1) {

            monthLenth = _currentNumberOfDaysInMonth;

        } else if(flag == 2) {

            monthLenth = _nextNumberOfDaysInMonth;

        }

        if(curDay == monthLenth) {

            curDay = 1;

            flag = 2;

        } else {

            curDay++;

        }

        if(i % 7 == 0) {

            index = 0;

            j++;

        } else {

            index++;

        }

        k++;

        [_calanderView addSubview:itemButton];

        _calanderView.frame =CGRectMake(0, 46, width(_backGroundView.frame), j*buttonWidth);

    }

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Haitao0692/article/details/51045072

智能推荐

用mapgis数据转成arcgis中shape格式的方法_mapzone数据转shape-程序员宅基地

文章浏览阅读948次。用FME 将mapgis数据转成arcgis格式的方法: 首先: 安装FME2015(按照里面的安装说明装的),百度云下载地址是:链接:http://pan.baidu.com/s/1jHHNxzS密码:3e9d; 其次:同时再装了一个MyFME(网上可免费下载免费版),装完把数据加载进去,再点保存数据,存为shp格式就可以了。..._mapzone数据转shape

结对编程--一个旁听生的自白 By Yueyi-程序员宅基地

文章浏览阅读67次。在这个课里面,我是最另类的,我是一个旁听生。虽然我是另外二十一个人的师兄,但其实我很惭愧地说,我的编程能力很弱,没有过多少编程经验。所幸我的伙伴Haifeng做得比较好,使得我的拙劣不会彰显得太过火。言归正传,我和Haifeng要做的是在微软学术搜索的基础上增加作者查找,地理位置查找还有关键字查找三项功能,工期大概是十天,所用的开发平台是Silverlight。接到这个题目,我还是很高兴的,因...

android studio 2.0一直处于加载,过Android Studio 2.0的即时运行导致DexFile不加载的所有类...-程序员宅基地

文章浏览阅读140次。我们可以处理应用程序数据路径中即时运行构建的DEX文件。public class MultiDexHelper {private static final String EXTRACTED_NAME_EXT = ".classes";private static final String EXTRACTED_SUFFIX = ".zip";private static final String S..._studio2.0 parsing a file

基于八叉树的体素滤波应用于点云_体素 八叉树-程序员宅基地

文章浏览阅读409次。最后,我们将滤波后的点云保存到磁盘上,并输出滤波前后的点云数量。体素滤波是一种常见的点云处理方法,它通过在三维空间中定义体素网格,并对每个体素内的点进行操作来平滑和清理点云数据。值得注意的是,根据具体的应用需求,可以调整体素网格的尺寸(setLeafSize)以及其他参数,以获得更好的滤波效果。综上所述,基于八叉树的体素滤波是一种常用的点云处理方法,可以用于平滑和清理点云数据。通过使用pclpy库,我们可以方便地实现基于八叉树的体素滤波,并根据具体需求进行参数调整和其他进一步的点云处理操作。_体素 八叉树

利用java程序实现文件加密_java进程导致加密-程序员宅基地

文章浏览阅读1.7w次,点赞17次,收藏144次。我们的文件在计算机中都是以二进制的形式存储,而Java中IO流(字节流和字符流)可以实现对底层文件的读取,故利用Java的IO流进行文件拷贝时,可以对底层二进制进行加密操作,随后通过解密操可以还原。例如,我们对桌面上的一段avi视频文件进行加密操作,首先利用字节流对avi文件进行读取(read()函数),该函数每次读取一个字节(8位),并返回0~255内的字节值,我们通过将每次读取的字节值加1..._java进程导致加密

关于错误:ORA-12592: TNS: 包错误 和 Io 异常: Connection reset by peer: socket write error_insert ora-12592-程序员宅基地

文章浏览阅读9.4k次。最近几天在这边做导入数据的工作,但是遇到了很多问题,还好推迟上线了,不然真的要耽误工时了(谁让专业的DBA们都不见了呢)今天周三了,今天报的错误清一色和前天的一样,而昨天的错误如下:ORA-12592: TNS: 包错误 和 Io 异常: Connection reset by peer: socket write error_insert ora-12592

随便推点

Expected ‘v-bind:key‘ directive to use the variables which are defined by the ‘v-for‘ directive._expected 'v-bind:key' directive to use the variabl-程序员宅基地

文章浏览阅读1.3w次,点赞8次,收藏3次。首先明确,我遇到这个问题时是v-for嵌套的情况。Vscode使用了Vetur插件。如果你遇到的相同的报错但是与我的原因不同,可以在评论区中留言,我看到后也会尽可能帮助你解决问题。我将出现问题的代码抽象成如下结构<template v-for="(item1, index1) in ['str1','str2','str3']"> <div :key="index1"></div> <template v-for="(item2, index2) in_expected 'v-bind:key' directive to use the variables which are defined by th

java 内部类与外部类之间的成员互相访问《java编程思想》_成员内部类可以访问外部类的所有成员,包括private成员-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏4次。01:内部类 可以访问 外部类 的 任何成员,包括private成员。02:外部类 访问 内部类 的成员 需要 创建 内部类的 对象,之后 可以 访问 内部类 的 任何 成员,包 括private成员,需要注意的是成员内部类不可以有静态成员。03:当外部类 的成员 和 内部类的 成员重名时单单用this是区分不了的。在内部类中访问外部类的成员 时可以用如下语法区分 :<外部类类名>.this.<外部类中需要被访问的成员名>;04:解释 外部类 为什么可以直接访问 内部类的 所_成员内部类可以访问外部类的所有成员,包括private成员

MATLAB将多个图画在同一个图中并标注(a)(b)(c)(d)_论文中同一个图(a)(b)怎么标-程序员宅基地

文章浏览阅读1.6w次。MATLAB将多个图画在同一个图中并标注(a)(b)(c)(d)subplot(2,1,1);stem(x),'ko-');xlabel({'采样点';'(a)'});_论文中同一个图(a)(b)怎么标

codecademy-command line_filesystem-程序员宅基地

文章浏览阅读86次。$:shell prompt (命令提示符)In the terminal, first you see$. This is called ashell prompt. It appears when the terminal is ready to accept a command.When you typels, the command line looks at ...

2020 Java最全面试题总结_java 2020 最全总结-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏15次。序号内容链接地址1Java基础知识面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/1043906122Java集合容器面试题(2020最新版)https://thinkwon.blog.csdn.net/article/details/1045885513Java异常面试题(2020最..._java 2020 最全总结

程序员如何实现财富自由系列之:利用程序员技能进行软件定制开发-程序员宅基地

文章浏览阅读1.1k次。软件定制开发(Software Customization Development),即通过对软件源代码进行修改或者添加功能的方式,来达到自己定制化需求或解决特定产品或服务需求的一种开发方式。相对于软件外包、系统集成商等更高收费、更复杂的开发模式来说,软件定制开发方式可以节约资源,缩短开发周期,提升工作效率。软件定制开发通常需要具有高度的编程能力、应用知识和沟通技巧,才能快速上手,较为专业的技能也会让客户满意,因此大部分企业在选择定制开发时都会优先考虑此项服务。

推荐文章

热门文章

相关标签