24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > 安卓开发

【常州安卓开发培训班】实现自定义日历、日期选择控件效果

2018-04-23 14:53:50 东方博宜 阅读

●你昨天/这周学习了什么?

●你为什么热衷于软件开发?

●你对哪一种控制系统比较熟悉?

●是否参与过GitHub项目?

●是否参与过GitHub或其他同类型网站的iOS开源项目?


●请描述一下你的iOS应用开发流程。

●是否熟知CocoaPods?它是什么?如何运行的?

●请概括一下你对软件授权的理解,及其对软件开发的影响。

●请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持?

●请描述一下Instruments及其作用。


关于iOS技术


●请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。

●iCloud包含了哪些技术与服务?

●iOS扩展是指?能否列举一些热门或常见的范例?

●HealthKit是什么?

●HomeKit是什么?


●Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?

●请解释一下iOS应用沙盒机制。

●VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?

●iOS应用是如何实现后台多任务处理(Multitasking)的?

●Game Center针对iOS游戏有哪些功能?

●iBeacons是什么?


●Cocoa/Cocoa Touch是什么?

●请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?

●请描述SpriteKit和SceneKit的作用。

●Metal是什么?

●响应链(Responder Chain)是什么?它是如何发挥作用的?


●按钮和其他控制方式对哪些操作做出回应?

●AppDelegate扮演着什么样的角色?

●请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?

●你会如何储存用户的认证信息?

●请问何为Keychain服务?


●为什么移动设备上的缓存和压缩是不可或缺的?

请解释一下~/Documents,~/Library和~/tmp。 iOS中的~属于什么目录?

●AirPlay是如何运行的?换做是你,你会如何通过编程提高应用的实用性以及演示效果?

●传感器,IO以及WiFi、拨号等连接方式如何在iOS平台上运作?它们有何利用价值?请扼要地谈谈你的观点。

●iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬件性能方面有何差异?这对注重性能的应用有何限制?


关于编程


●Cocoa Touch包含什么?不包含什么?

●为什么Cocoa Touch的类名称是以两个大写字母开头的?

●Swift和Objective-C分别是什么?两者相比有何不同之处,又有何联系?

●为什么Optional在Swift语言中非常重要?

●请解释一下NSError。在Swift中,什么情况下能使用NSError ,什么情况下不能?


●请说明如何使用Instancetype及其重要性。

●在Swift中,什么时候该用let,什么时候该用var?

●为什么map函数必不可少?该在什么情况下使用它?

●你会选择什么工具来追踪Bug?

●如果在Cocoa中发现一个Bug,你会如何处理?


●如果应用的新版本出现了Regression的情况,该如何补救?如何防止用户在使用过程中遇到新的Bug?

●Objective-C的类是怎么执行的?Objective-C Runtime是如何实现的?

●iOS是如何提高安全性,保护用户隐私信息的?

●应用可以下载并即刻显示数据。如何根据MVC来判断下载的最佳位置?

●MVC对代码库(Codebase)的设计有何影响?


●Controller Life-Cycle以及View Life-cycle分别有哪些调试方法?

●iOS使用的是哪些设计模式(Design Patterns)?你的代码库使用的是哪些设计模式?

●iOS提供哪些线程?如何充分利用这些线程?

●请简要描述一下UIScrollView的执行过程。它是如何响应手势识别(Gesture Recognizer)、多点触控(Multi-Touch)和Run Loop的?

●你认为iOS需要添加或改进哪些API?


关于界面


●iPhone5、6、6+以及iPad Air 2的屏幕分辨率分别是多少?

●分辨率的计算单位是什么?

●请解释一下Interface Builder的作用以及NIB文件的概念。

●iOS UI的图像储存类型是什么?

●请描述一下Storyboard和标准NIB文件的差别。


●设备状态栏(Device Status Bar)是什么?高度如何?是否透明?在手机通话或者导航状态下,它是如何显示的?

●导航栏(Navigation Bar)是什么?能否拿出你的iPhone,指出你下载的哪些应用运用了导航栏?

●选项卡(Tab Bar)和工具栏(Toolbar)分别是什么?两者之间有何共同点和不同点?

●表视图(Table View)是什么?集合视图(Collection View)又是什么?

●什么时候用“弹出(Popover)”属性最为合适?


●Split-view Controller是什么?

●选取器视图(Picker View)适合存放哪类内容?

●应该在什么情况下使用标签、文本域和文本视图?

●分段控件(Segmented Control)的作用是什么?

●模态视图(Modal View)是什么?

●iOS通知属于什么类型?


关于设计


●iOS应用图标是指什么?请尽可能详细地描述一下。

●最小尺寸和最大尺寸的应用图标分别是什么样子的?

●应用图标能否包含透明的部分?

●Newsstand的图标与常规应用有何不同?

●请解释一下启动画面(Launch Images)。


●自动布局(Auto Layout)的作用是什么?请概括一下它是如何运行的。

●设计软件时为什么要加上动画?

●请描述一下软件设计中的交互和Feedback有什么作用。

●设计iPhone和iPad应用时,应分别考虑哪些因素?

●请描述一下原型设计对于软件开发的意义。其作用是什么?


实现思路


头部是一个自定义组合控件;

显示一周的日期部分用GridView 更加方便更新;

切换月的部分是一个自定义PopupWindow;

GridView选中效果;

GridView根据手势GestureDetector监听左右滑动;

核心其实还是Calendar类,根据这个类我们可以获取制定日期一周的日期集合、可以获取制定日期一月的日期集合等等;

根据阳历日期获取阴历日期

使用


// xml布局引用



// 代码中,自定义回调监听选中的日期dataView = (DataView) findViewById(R.id.week);dataView.setOnSelectListener(new DataView.OnSelectListener() {            @Override            public void onSelected(DateEntity date) {                info.setText("日期:"+ date.date+"

"+                             "周几:"+ date.weekName+"

"+                             "今日:"+ date.isToday+"

"+                             "时间戳:"+ date.million+"

");                Log.e("wenzhiao--------------",date.toString());            } });//需要传递此种格式的日期,不传默认是获取今日的日期dataView.getData("2017-04-19");

实现整体逻辑


回调的日期信息封装成一个实体类DateEntity:

public class DateEntity {    

    public long million ; //时间戳    public String weekName ;  //周几    public int weekNum ;  //一周中第几天,非中式    public String date ; //日期    public boolean isToday ;  //是否今天    public String  day ;  //天    public String luna ;  //阴历    @Override    public String toString() {

        return "DateEntity{" +                

                "million=" + million +                

                ", weekName='" + weekName + ''' +                

                ", weekNum=" + weekNum +                

                ", date='" + date + ''' +                

                ", isToday=" + isToday +                

                ", day='" + day + ''' +                

                ", luna='" + luna + ''' +                

                '}';    }}

常州东方博宜是一家专注IT,互联网,电脑方面的顶尖培训机构,欢迎社会及院校有志互联网营销,搜索引擎营销的人士,来东方博宜报名学习,互相交流。

常州东方博宜地址:常州天宁区延陵西路2号工人文化宫5号楼

 2.新北区太湖东路9-4号常州创意园E12


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2018 www.czos.cn