扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你知道吗?IOS软件工程师已经成为软件人才中的紧缺型人才!
成都创新互联服务项目包括公主岭网站建设、公主岭网站制作、公主岭网页制作以及公主岭网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,公主岭网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到公主岭省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
国内外出现大量的“IOS人才荒”,未来几年IOS人才需求缺口将达百万!
招聘网站上,IOS软件工程师依然成为各大企业哄抢的对象,不少企业为招聘这类人才,不惜花重金招揽,腾讯、联想、新浪等国内企业也毫不例外地争夺IOS软件工程师,很多IOS开发岗位年薪已高达几十万!
课程内容
内容介绍
预备阶段
1、文件管理器Finder
2、iWork使用Numbers,Keynote,Pages
3、Safari浏览器
?
?
MacOs的使用,iWork的使用
iOS开发基础
1、iOS开发的系统环境介绍、Xcode集成开发环境详解、常用软件的介绍
2、数据类型、常量和变量、运算符、赋值语句和表达式;分支、循环
3、函数,数组(一维数组、二维数组、多维数组),结构体
4、指针数组、数组指针,结构体指针
5、指向指针的指针,宏定义、枚举,const,static
?
?
?
1、Xcode、SVN
2、C语言是iOS开发的入门基础语言,本部分主要介绍C语言的基本语法,程序结构,以及指针的各种操作。
为接下来Objective-C语言的学习打下基础。
?
1、面向对象(OOP)和面向过程、类(Class)和对象(Object)、类的定义
2、创建对象、self和super关键字、属性以及点语法(nonatomic,assign、retain、copy,readonly、readwrite)
3、便利构造器、单例(Singleton)
4、堆栈、内存管理(alloc、copy、retain,release、autorelease,strong、weak)
5、键值编码(KVC)、键值监听(KVO)、通知(NSNotification)
6、类目(Category)、延展(Extention)、协议(protocol)
?
?
?
?
?
?
?
Objective-C是iOS与MacOS开发的主要语言,它是对C语言的扩展,并融入了面向对象的特点。
包含封装、继承、多态三大特性,本部分主要介绍OC的基本语法,新的特性,内存管理等内容
?
1、字符串(NSStringNSMutableString)、数值对象(NSNumberNSValue)
2、数组(NSArray,NSMutableArray)、字典(NSDictionary,NSMutableDictionary)、集合(NSSet,NSMutableSet)、快速枚举(for?in)NSIndexPath
3、日期与时间(NSDate)、日期格式(NSDataFormatter)、日历(NSCalendar)、定时器(NSTimer)
4、文件管理(NSFileManager)、程序包(NSBundle)、缓冲区(NSData)
5、网络连接(NSURLConnection)、网络地址(NSURL)、网络请求(NSURLRequest)、请求回应(NSResponse)、错误信息处理(N0SError)
6、MVC编程,简单控件一:标签(UILabel)、文本输入(UITextField)、按钮(UIButton)、提示框(UIAlertView、UIActionSheet
7、使用面向对象OOP方法,实施计算机APP应用.要求学员应用前期学习中的大部分知识点
?
?
?
?
?
iOS的基础框架,包含了iOS开发的基本数据类型,在iOSSDK中几乎部NS开头的类都属于这个框架,我们将详细介绍开发中常用的类。
iOS开发
1、窗口(UIWindow)、视图(UIView)、应用程序(UIApplication)
2、绘图(drawRect)、QuartzCoreDemo、CGContextRef
3、触摸(UITouch)、事件(UIEvent)、手势(UIGestureRecognizer)、UIResponder、消息传递、响应者链
4、UIView以及CALayer动画(CAAnimation、CABasicAnimation、CAKeyFrameAnimation)
5、活动提示(UIActivityIndicatorView)、图像(UIImageView)
6、控件二:滚动视图(UIScrollView)、页控制器(UIPageControl)、开关(UISwitch)、单选(UISegmentControl)、滑块(UISlider)
7、控件三:多行文本(UITextView)、网页视图(UIWebView)、滚轮(UIPickerView)、日期滚轮(UIDatePickerView)、表格视图(UITableView)、表格项(UITableViewCell)
8、视图控制器(UIViewController)、导航控制器(UINavigationController)、标签控制器(UITabBarController)、表格控制器(UITableViewController)、相册控制器(UIImagePickerController)
?
?
?
?
?
?
?
?
?
?
?
?
?
?
UIKit处于Cocoa四层结构的上层CocoaTouch层,是iOS开发中的控件框架,定义了几乎部可视化控件,在iOS开发中占据地位,我们不会学习各个控件的用法,而且会讲述各个控件在不同版本系统里的样式,教大家如何自定义控件样式。
学完他们我们就可以做自己个性化的界面了。
结合前期所学知识,应用UIKit框架详解中所学的UI控件及知识点,模拟实现Safari浏览器
iPhoneSafari浏览器原型App。
1、音频播放(AVAudioPlayer)、视频播放(MPMoviePlayerViewController)以及播放ipod音乐
2、照相机(UIImagePickerController)以及相册的使用
3、短信(MFMessageComposeViewController)、邮件(MFMailComposeViewController)的使用
4、加速计(UIAccelerometer)的使用、帐号注册、真机调试、上传程序
5、地图(MKMapView)的使用以及定位(CoreLocation)
6、数据持久化(文件读写、sqlite数据库、归档、NSCoding协议)、云存储(iCloud)
7、多线程开发(NSThread、NSLock),操作队列(NSOperationQueue)
8、网络请求(GET、POST)、xml解析、json解析、Socket编程
?
iOS应用特性框架是对上述两个框架之外其他框架的统称。
主要课程内容为:音频、视频的播放、照相机的使用、加速计的应用,地图框架的使用、短信、邮件的应用等等,而且也会介绍当前应用开发中使用非常广泛的开源框架,同时还将讲解开发者帐号的注册、真机调试、以及程序上传。
iOS游戏开发
1、Cocos2DHelloWorld,CCDirector(导演类),CCScene(场景类),CCLayer
2、CCSprite(精灵类),CCAction(动作)
3、CCMemu(菜单),CCLabelTTF(标签)
4、CCPointParticleSystem(点粒子系统)
5、练习:植物大战僵尸游戏开发
?
2D游戏引擎的使用,部课程内容以"植物大战僵尸"为例,贯穿其中
1、在Xcode下编译C++程序,C++类Class,成员变量,成员函数,对象的创建
2、构造函数与析构函数,newdelete关键字,内存管理
3、继承,函数重载,操作符重载,拷贝构造
4、模版template与泛型
5、Objective-C与C++混合编程
?
C++是目前流行的开发语言之一,C++基本语法,C++面象对像的特性.在XCode下如何使用C++语言编程.
1、物理世界(b2World),刚体(b2Body),精灵与刚体连接
2、碰撞测试(b2ContactListener)
3、刚体的连接关节(b2Joint)
4、练习:愤怒的小鸟开发
5、OpenGLES开发基础
?
iOS游戏开发中使用多的物理引擎,以愤怒的小鸟为例学习Box2D开发.
项目实训
项目会用到网络、数据库、各种常用控件、以及各种Foundation类。
目前有很多项目可以选择使用,比如:互动百科(新闻类应用)、乐视(电影类应用)、创业邦(杂志类应用)、尚品网(购物类应用)、雅座空间(团购类应用)、找地(定位类应用)、我是数学家(教育类应用)、YY客户端(语音类应用)、麦咨达(条码扫描类应用)、中国建行(银行类应用)、CuteMath(游戏类应用)、车震摇摇乐(娱乐类应用)、新浪微博(微博类应用)等等
老师程带领学生做一个真实项目,从需求分析开始带起,然后技术调研,工期评估、编码、测试、优化代码、上传程序等项目内容会包括几点:网络数据解析、团队协调、版本管理、制作文档、复杂表布局、制作CELL类、动画应用、定位、方向地址解析、百度地图应用
1、多点触摸(MultiTouch)技术指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术。与多点触摸技术相对应的当然就是单点触摸,单点触摸设备已经有很多的年头了,小尺寸的有触摸式手机,大尺寸最常见的就是银行里的ATM机和排队查询机。多点触摸设备是由可触摸设备(例如:计算机显示器、桌子、墙壁)或者触摸板组成,通过软件识别同时发触摸行为的点。
2、通过多个手指来控制图形界面的一种技术。多点触摸设备是由可触摸设备(例如:计算机显示器、手机、平板电脑、墙壁)或者触摸板组成,通过软件识别同时发触摸行为的点。从而实现在没有鼠标、键盘等输入设备的情况下,通过对屏幕的触摸来实现各种操作。
3、很多人以为多点触摸仅限于放大缩小功能。其实,放大缩小只是多点触摸的实际应用样例之一。有了多点触摸技术,怎么应用就可以通过无限想象来无限扩展。程序员可以把多点触摸应用到很多方面,从一定程度上改变或者创新出更多的操作方式来。典型的应用是,在硬玻璃上弹琴成为现实。如果把你的手机屏幕变成琴键,那么哄哄小女孩还是很有趣的。另一个典型的例子是苹果手机上的PS模拟器,通过多点触摸技术,实现了同时进行方向键和其他按钮的组合输入。
UITouch
表示屏幕上发生的触摸的位置,大小,移动和力度的对象。
//单点触摸按下事件
UIControlEventTouchDown
//多点触摸按下事件
UIControlEventTouchDownRepeat
//当一次触摸在控件窗口内拖动时
UIControlEventTouchDragInside
//当一次触摸在控件窗口之外拖动时
UIControlEventTouchDragOutside
//当一次触摸从控件窗口之外拖动到内部时
UIControlEventTouchDragEnter
//当一次触摸从控件窗口内部拖动到外部时
UIControlEventTouchDragExit
//所有在控件之内触摸抬起事件
UIControlEventTouchUpInside
//所有在控件之外触摸抬起事件(点触必须从控件内部开始才会发送通知)
UIControlEventTouchUpOutside
//所有触摸取消事件
UIControlEventTouchCancel
//控件的值发生改变时
UIControlEventTouchChanged
//当文本控件中开始编辑时发送通知
UIControlEventEditingDidBegin
//当文本控件中的文本被改变时发送通知
UIControlEventEditingChanged
//当文本控件中编辑结束时发送通知
UIControlEventEditingDidEnd
//当文本控件中的文本结束编辑时发送通知
UIControlEventEditingDidOnExit
//通知所有触摸事件
UIControlEventAlltouchEvents
//通知所有关于文本编辑的事件
UIControlEventAllEditingEvents
//通知所有事件
UIControlEventAllEvents
ios uiviewcontroller处理触摸事件的方法是:
在UIViewController的子类中重写以下几个函数:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
当手指接触到屏幕时触发
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
当手指在屏幕上滑动时
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
当手指滑动一段后离开屏幕时
-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
当有系统事件发生要取消触摸事件时
从(UIEvent *)event中提取所有触摸事件
UITouch *touch = [[event allTouches]anyObject];
取得触摸事件对应的NSView
[touch view];
取得触摸事件对应NSView的座标
CGPoint touchLocation = [touch locationInView:self.view];
千锋扣丁学堂iOS开发学习为您解答:
在IOS开发中会遇到各种操作事件,通过程序可以对这些事件做出响应。
首先,当发生事件响应时,必须知道由谁来响应事件。在IOS中,由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会。当发生事件时,事件首先被发送给第一响应者,第一响应者往往是事件发生的视图,也就是用户触摸屏幕的地方。事件将沿着响应者链一直向下传递,直到被接受并做出处理
路线图如 First Responser——The Window——The Application——App Delegate
正常的响应者链流程经常被委托(delegation)打断,一个对象(通常是视图)可能将响应工作委托给另一个对象来完成(通常是视图控制器ViewController),这就是为什么做事件响应时在ViewController中必须实现相应协议来实现事件委托。
1.触摸和事件
——UITouch
UITouch对象是一个手指接触到屏幕并在屏幕上移动或离开屏幕时创建的。它有几个属性和实例方法:
phase:属性,返回一个阶段常量,指出触摸开始、继续、结束或被取消,分别对应UITouchPhaseBegan、UITouchPhaseMoved等
tapCount:属性,轻按屏幕的次数
timeStamp:属性,触摸发生的时间
view:属性,触摸始于那个视图
window:属性,触摸始于哪个窗口
lacationInView:方法,触摸在指定视图中的当前位置
previousLocationView:方法,触摸在指定视图中的前一个位置
——UIEvent
UIEvent对象包含一组相关的UITouch对象,由UITouch对象组成UIEvent对象,可以理解成一个完整的触摸操作是一个UIEvent,而这一系列完整操作中的每个点就是UITouch(按下、移动、离开)。
UIEvent的作用是提供相关触摸操作的列表,如果要获取在屏幕上触摸的手势,可以使用该对象,这一些列操作都存储在Foundation框架中的NSSet对象中。
——UIResponder
UIResponser提供四个事件响应的方法,这些方法是事件捕捉的核心。这些方法都接收两个参数,一个是NSSet(包含指定阶段的触摸)和一个UIEvent。
touchesBegan:withEvent: 在手指触摸屏幕时报告UITouchPhaseBegan事件
touchesMoved:withEvent: 在手指在屏幕上移动时报告UITouchPhaseMoved事件
touchesEnded:withEvent: 在手指离开屏幕时报告UITouchPhaseEnded事件
touchesCancelled:withEvent: 在因接听电话或其他因素导致取消触摸时报告UITouchPhaseCancelled事件
所有继承响应者对象UIResponder都能接收并处理事件。按照时间顺序,先找到到最合适的view,然后就会调用view的touches方法,这些方法的默认做法是将事件顺着响应这链条向上传递,将事件交由上一个响应者进行处理,直到有一个view能处理该响应为止或者丢弃。这是一个从上到下,再从下到上的过程。
事件的传递先从父控件传递到子控件(UIApplication-window-寻找处理事件最合适的view)。
如果父view不能接受触摸事件,那么子view也不能接收到触摸事件。
有两个重要的方法:
view会调用hitTest:withEvent:方法,hitTest:withEvent:方法底层会调用pointInside:withEvent:方法判断触摸点是不是在这个view的坐标系上。如果在坐标系上,会分发事件给这个view的子view。然后每个字view重复以上步骤,直至最底层的一个合适的view。
事件响应会先从底层最合适的view开始,然后随着上一步找到的链一层一层响应touch事件。默认touch事件会传递给上一层。如果到了viewcontroller的view,就会传递给viewcontroller。如果viewcontroller不能处理,就会传递给UIWindow。如果UIWindow无法处理,就会传递给UIApplication。如果UIApplication无法处理,就会传递给UIApplicationDelegate。如果UIApplicationDelegate不能处理,则会丢弃该事件。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流