开发iOS程序需要使用 Objective-C 语言和Cocoa Touch框架.Objective-C 源于 C 语言,是 C 语言的扩展. Cocoa Touch框架是一个Objective-C类的集合.本篇文章用来介绍一些Objective-C基础知识. 对象 假设有一场聚会.该聚会有若干特有的属性,例如聚会的名称,日期和一根受邀请的名单.此外,还有“聚会”需要做些事情,比如向受邀请者发送一封提醒邮件,或者取消聚会. 如果使用C语言,那么我们可以定义一个 结构体 ,用于保存这场聚会的数据类…
文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑  JXHypnosisViewController.m 修改  loadView 方法,向  view 中添加一个 UITextField 对象: #import "JXHypnosisViewController.h" #import "JXHypnosisView.h" @interface JXHypnosisViewController () @end…
我们继续之前的 Hypnosister 应用,当用户开始触摸的时候,圆形的颜色会改变. 首先,在 JXHypnosisView 头文件中声明一个属性,用来表示圆形的颜色. #import "JXHypnosisView.h" @interface JXHypnosisView () /** 颜色 */ @property (nonatomic,strong) UIColor * circleColor; @end @implementation JXHypnosisView - (in…
我们知道 UITabBarController 对象,可以通过使用该对象,用户可以切换不同的屏幕.当要切换的各个屏幕之间没有相互依存关系的时候,该对象可以很好的完成任务.但是当多个屏幕互有关系的时候,就要使用另一种控制器 UINavigationController . 事实上,基本上在所有的 APP 中,必不可少的两种控制器. 我们以 iOS 自带的 设置 应用为例,设置应用拥有多个互有关联的窗口,我们称之为这种界面为 垂直界面 . 下面我们将使用 UINavigationController…
视图控制器是  UIViewController 类或其子类对象.每个视图控制器都负责管理一个视图层次结构,包括创建视图层级结构中的视图并处理相关用户事件,以及将整个视图层次结构添加到应用窗口. 创建一个程序,并将上节  JXHypnosisView 类导入到工程中. 创建 UIViewController 子类 打开工程,创建一个  UIViewController  子类文件,并将其命名为  JXHypnosisViewController UIViewController 的 view 属…
触摸事件 因为 UIView 是 UIResponder 的子类,所以覆盖以下四个方法就可以处理四种不同的触摸事件: 1.  一根手指或多根手指触摸屏幕 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event; 2.  一根手指或多根手指在屏幕上移动(随着手指的移动,相关的对象会持续发送该消息) - (void)touchesMoved:(NSSet<UITouch *>…
栈 当程序执行某个方法(或函数)时,会从内存中一个叫栈的区域分配一块内存空间,这块内存空间我们叫帧.帧负责保护程序在方法内声明的变量的值.在方法内声明的变量我们称之为局部变量. 当我们的程序开始启动,作为程序的入口main函数,他的帧会被保存在栈的地步.当main调用另一个方法时,这个方法会被压入栈的顶部.被调用的方法还会调用其他的方法,这样一直调用,就会形成一个帧序列.当调用的方法执行结束的时候,程序会将其帧从栈顶“弹出”并释放响应的内存. 所以栈的内存形式是先进后出. 堆 堆是值内存中的另一…
视图基础 视图是 UIView 对象,或者其子对象. 视图知道如何绘制自己. 视图可以处理事件,例如触摸(touch). 视图会按照层次结构排列,位于视图层次结构顶端的是应用窗口. 视图层次结构 任何应用有且只有一个  UIWindow 对象. UIWindow 对象就像是一个容器,负责包含应用中的所有的视图.应用需要在启动时创建并设置 UIWindow 对象,然后为其添加其他视图. 加入窗口的视图会成为该窗口的子视图.窗口的子视图还可以有自己的子视图,从而构成一个以 UIWindow 对象为根…
上个项目我们完成了 JXHomepwner 简单的应用展示,项目地址.本节我们需要在上节项目基础上,增加一些响应用户操作.包括添加,删除和移动表格. 编辑模式 UITableView 有一个名为  editing 的属性,如果将其设置为  YES , UITableView 就会进入编辑模式.在编辑模式下,用户可以管理 UITableView 中的表格行,我们可以添加.删除和移动等操作.但是编辑模式没有听过修改行的内容的功能. 首先要更新界面,使用户可以将 UITableView 对象设置为编辑…
UIGestureRecognizer 对象会截取本应由视图处理的触摸事件.当某个UIGestureRecognizer对象识别出特定的手势后,就会向指定的对象发送指定的消息.iOS SDK默认提供若干中UIGestureRecoginezer对象.本章我们将继续更新 JXTouchTracker ,借助由iOS SDK提供的三种 UIGestureRecogniezer对象,用户可以选择.移动.删除线条. UIGestureRecognizer子类 在为应用添加手势识别功能时,需要针对特定的手…