不管是是界面创建约束还是代码创建约束,苹果官方提供的方式都比较繁琐.所以出现了第三方框架. Masonry 在github地址如下: https://github.com/SnapKit/Masonry 如果需要通过代码手动添加约束,Masonry真的是一个不错的选择,大大增加开发效率,何乐而不为呢. Autolayout - Masonry 使用步骤 添加Masonry文件夹的所有源代码到项目中 添加2个宏.导入主头文件 // 只要添加了这个宏,就不用带mas_前缀 #define MAS_S…
1 常用的第三方工具 1.1 iPhone Simulator 测试程序需要模拟器iPhone Simulator 1.2 设计界面需要Interface Builder,Interface Builder(IB)中将视图拖拽到窗口上并将各种视图连接到插座变量和动作上, 这样它们就能以编程方式与代码交互.IB使用Nib文件储存GUI资源,同时适用于Cocoa和Carbon程序.在需要的时候,Nib文件可以被快速地载入内存. 2 iOS的常用开发框架 2.1 Foundation框架,该框架允许使…
iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器.调试.模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行.   创建新工程   Xcode提供了很多…
objective-c基础总结 第一二章 1.application:didiFinishLauchingWithOptions:程序启动后立即执行 2.启动界面代码格式:self.window = [UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//1.从Infor.plist中取出版本号NString *version = [NSBundle mainBundle].infoDictionary[key];//2.…
 Foundation 框架的学习 一.Foundation 常用结构体 1.NSRange(location,length)  typedef struct _NSRange { NSUInteger location; // unsigned long NSUInteger length; // unsigned long } NSRange; 使用注意 NSRange r1 = {,}; // 结构体格式的初始化 NSRange r2 = {,}; // NSRange 的函数,用来初始化…
转自:http://www.cnblogs.com/macroxu-1982/archive/2012/07/31/2616389.html 下面是单个窗体项目例子,我们从这个项目开始,说明ios项目文件结构. 项目清单说明: 1 supporting files 文件夹 supporting files中放置了项目支持文件,下面是各种文件功能说明 helloword-info.plish 文件 :放置项目属性:如icon,项目显示名称,版本号等. infoplist.strings文件:放置项…
1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     AD y     年     Year   …
第一个IOS应用程序,就从最简单的开始吧. 1.先了解一下开发环境,Xcode的相关组成 2.还有模拟器 3.运行与停止按钮 4.新建一个工程 5.看看main函数里都有啥 6.现在来添加一个控件 1.先了解一下开发环境,Xcode的相关组成 2.还有模拟器 可以在菜单Xcode-->Open Developer Tool-->IOS Simulator 打开模拟器 3.运行与停止按钮 4.新建一个工程,可以运行一下看看效果,在模拟器里只是一个白色的窗口. 5.看看main函数里都有啥 #im…
开始学习OC,时间不等人啊,要抓紧了. OC基本知识 新建一个以.m结尾的文件,这既是oc的程序文件.在oc程序中完全兼容C语言.编译好链接类似. oc包含头文件是使用#import <> import 和include 的区别: 1:import和include一样的包含功能 2:import可以自动防止文件被重复拷贝 #import <Foundation/NSObjCRuntime.h>//NSLog头文件 //import 1:和include一样 // 2:可以自动防止文…
测试框架分层的整合 HibernateTemplate 和 HibernateDaoSupport,这两个类是 Spring 为整合 Hibernate3 提供的两个工具类. HibernateTemplate 是 Spring 的模板工具类之一,它只需要获得一个 SessionFactory 就可以执行持久化操作.HibernateDaoSupport 是 Spring 为实现 DAO 组件提供的一个工具类,它主要提供了两个方法以简化 DAO 的实现,具体如下. Public final Hi…
本文转载至 http://www.cnblogs.com/songliquan/p/4548206.html 1.代码实现比较复杂 代码实现Autolayout的步骤 利用NSLayoutConstraint类创建具体的约束对象 添加约束对象到相应的view上 1 - (void)addConstraint:(NSLayoutConstraint *)constraint; 2 3 - (void)addConstraints:(NSArray *)constraints; 代码实现Autola…
一.UITableView的常用属性 1.分割线 // 分割线 self.tableView.separatorColor = [UIColorredColor]; // 隐藏分割线 self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 2.选中样式 // cell选中样式,貌似几个枚举效果都一样 cell.selectionStyle = UITableViewCellSelectionStyleBlue; //…
在storyboard/xib文件中实现自动布局 autolayout 1.注意事项 autolayout和frame属性是有冲突的,所以如果准备使用autolayout,就不要再代码中对控件的frame属性进行操作. 设置autolayout必须设置完全,必须包括位置信息和尺寸信息.也就是说必须有宽高和坐标位置,缺一不可. 2.简单示例 两个view(redView和blueView),等高等宽,redView距离左边和下边间距都是20,距离blueView间距也是20.blueView距离右…
UITableView的简单使用过程 简单介绍 两种样式 UITableViewStylePlain UITableViewStyleGrouped 数据显示需要设置数据源,数据源是符合遵守协议 <UITableViewDataSource>的类 数据源 dataSource 一些UITableViewDataSource协议里写好的类,这些类有系统自动调用,调用顺序是先设置组再设置行最后设置行内容 设置组section,直接将组返回 - (NSInteger)numberOfSections…
只是简单练习一下,主要是学习里面的思想,处理问题的方法. 不过还有一个问题没想到解决方法. 那就是动态生成的按钮如何绑定按钮事件,请哪位大神指点一下啊.(知道怎么办了,原来是方法addTarget) segmentControll 控件和imageView 控件 总体效果如下,点击3列,表情按照3列显示,点击4列表情按照4列显示.    界面也很简单,只有一个segmentedControll控件,表情是通过代码生成的,自动排序. 一.先将界面做好,将表情资源添加到工程里,具体方法可以看上一篇.…
ARC 1.ARC机制 2.ARC 判断准则 3.注意事项 4.ARC和非ARC混合使用 ARC机制 ARC 是编译器特性,而不是 iOS 运行时特性,它也不是类似于其它语言中的垃圾收集器.因此 ARC 和手动内存管理性能是一样的,有时还能更加快速,因为编译器还可以执行某些优化 ARC 判断准则: 只要没有强指针,就会释放对象. 指针分2种: 强指针:默认都是强指针  (__strong) __strong Person *p; //  __strong 可以不写,默认就是__strong 弱指…
内存管理 1.基本知识 2.关闭ARC机制 3.@property 4.循环引用 5.自动释放池 6.内存管理总结 一.基本知识 内存的分类 栈:局部变量 堆:动态申请的对象,变量等 全局(静态):static 变量,const变量,全局变量等 引用计数器  每个OC对象都有自己的引用计数器,是一个整数,表示“对象被引用的次数”,即有多少人正在使用这个OC对象 每个OC对象内部专门有4个字节的存储空间来存储引用计数器  作用 当使用alloc.new或者copy创建一个新对象时,新对象的引用计数…
1.点语法 2.成员变量的作用域 3. @property和@synthesize 4.id类型 5.构造方法 6.自定义构造方法 7.模板修改 8.Category - 分类 9.类扩展 一.点语法 点语法的本质还是方法调用 Person *p = [Person new]; p.age = ;//点语法 p.name = @"li si";//点语法 //[p setName:@"zhang san"]; //[p setAge:20]; NSLog(@&quo…
xcode使用技巧 1.自动生成类 2.断点调试 3.代码段保存 4.注释标记 1.新建类,自动生成两个文件和基本结构 第一步  第二步,选择新建一个类,而不是一个源文件  第三步,书写类名一级自己要继承的父类  第四步.选择文件的保存路径  最后,自动生成两个文件,一个头文件,一个源文件,文件的基本结构已经写好了. 2.断点调试 断点调试可以观察程序运行过程中各种变量的变化过程,用于检查错误. 取消断点或者删除断点 3.代码段保存  这里要设置代码段的名称和要使用的快捷方式,用于在文件中输入快…
面向对象的三大特性 1.封装 2.继承 3.多态 一.封装 将类内部的属性保护起来,在外部不能直接访问,那么如果需要访问怎么办呢? OC提供了set方法来对成员变量进行访问 set方法 1.作用:提供一个方法给外界设置age属性的值 2.命名规范 方法名必须是set开头 set后面跟上成员变量的名称,成员变量首字母必须大写 返回值一定是void 一定要接收一个参数,并且和成员变量类型一致  形参名不能和成员变量名一样 声明 - (void)setAge:(int)newAge;//声明 实现 -…
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起,生成一个可执行文件. 指令:cc 文件名.o 链接成功会生成一个.out可执行文件,选择用终端打开运行. 4.运行:./a.out //也可以双击a.out运行  ./表示当前路径 也可以同时编译并链接 指令:cc a.c 可以直接在终端里生成文件,生成一个源文件到当前目录 指令:touch   a…
1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];    //    能够定义的button类型有以下6种,//    typedef enum {//        UIButtonTypeCustom = 0,          自定义风格//        UIButtonTypeRoundedRect,        …
QQ聊天界面实现 效果如下: 实现过程: 1.首先实现基本界面 头像使用 UIImageView : 文字消息使用 UIButton 标签使用 UILable :水平居中 所有元素在一个cell中,在加载cell时进行判断显示和隐藏. 合理设置各个控件之间的约束关系.主要是UIIimageVIew和UIButton顶部对齐,间距为10.UIButton的宽度设置一个约束范围,比如说 (>=60 &&  <=300); 底部添加一个UIView ,添加输入框等. 2.创建模型文件…
一.自定义非等高的cell         如常见的微博界面,有的微博只有文字,有的有文字和图片.这些微博的高度不固定需要重新计算. 这里简单说一下几种方法.前面的步骤和设置等高的cell一样.现在来说说不一样的地方.         效果如下:   1.在storyboard\xib里实现如下界面 使用自动布局添加约束,在xib里创建和在storyboard非常类似. 2.计算cell高度     2.1.在模型类中给每个cell添加一个高度属性      // cell高度     @pro…
九宫格布局,用手机输入法时经常见到.先按3行3列写. 代码的实现主要是计算插入图片的位置. 每一张图片的位置和所在的行列密切相关.分析过程如下: 界面: 代码实现 1.把需要的图片资源添加进来 然后给界面添加两个按钮,一个删除按钮,一个添加按钮.和一个lable表示图片状态. // 添加按钮 - (UIButton *)addButtonWithImage:(NSString *)image highImage:(NSString *)highImage disableImage:(NSStri…
实现scrollView的自动循环滚动,需要实现几个方法. 其中scrollView中始终保存三张图片,其他的图片在滚动到时再进行加载. 循环的实现主要是在setUpdate 中,如果索引为0是第一个,索引为2是最后一个,这是对索引值进行改变.第一个后接着显示最后一个,最后一个后接着显示第一个.依次循环. 分析过程为: 1.首先是set方法 setImageNames #pragma mark - setter方法重写 - (void)setImageNames:(NSArray *)image…
让图片自动滚动的话,需要使使用定时器,循环计算当前页的页码.并且在拖动图片时停止计时器,停止拖动时启动计时器. 定时器 方法1: performSelector [self performSelector:@selector(hideHUD) withObject:nil afterDelay:2.0]; - (void)hideHUD { _hudLable.hidden = YES; } 方法2: GCD dispatch_after(dispatch_time(DISPATCH_TIME_…
通过xib实现分页功能的封装 1.首先实现xib UIView 的尺寸为300*130,因为准备的图片为600*260. scrollView属性设置如下: 2.新建一个和xib同名的类 2.1 类方法,返回xib对象 + (instancetype)pageScroll { // NSStringFromClass 将类名转换成字符串,xib文件名和类名一样 return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self)…
1.滚动显示图片 如果图片过大,则需要滚动显示,这是需要用到类UIScrollView,可是实现控件的水平和垂直滚动. 可用三步实现:1 设置UIScrollView,2 设置UIImageView,3 设置UIScrollView的滚动 范围. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 1.添加 sc…
UITableView 的三种编辑模式 1.删除 2.排序 3.添加 进入编辑模式,需要设置一个参数 - (IBAction)remove:(UIBarButtonItem *)sender { NSLog(@"removed"); // 进入编辑模式 BOOL removed = !self.tableView.isEditing; //获取当前状态进行取反 [self.tableView setEditing:removed animated:YES]; //设置编辑模式,并设置动…