自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 iOS之UIScrollView

UIScrollViewUIScrollView继承自UIView,包含有三个子类:UITableView,UITextView,UICollectionView。UIScrollView是一种容器视图,当内容超出屏幕时,可以提供水平或者垂直滚动条。下面通过一个例子来对UIScrollView进行一个初步的了解//创建两个viewController(A和B),在A中实现垂直方向的滚动浏览一组图片,

2016-10-09 18:18:29 313

原创 iOS响应者链

上面图所示的是iOS响应事件是如何传递的!

2016-09-19 16:12:32 316

原创 AutoLayout

纯代码创建约束如下:- (void)viewDidLoad { [super viewDidLoad]; //OC专门为开发者封装了一个类NSLayoutConstraint来帮助开发者描述布局 /** * view1.attr1 = view2.attr2 * multiplier + constant * 视图1.属性1 关系 视图2.属性2 * 缩

2016-09-19 16:09:56 300

原创 UITextField

@interface ViewController ()<UITextFieldDelegate>@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //创建UITextField UITextField *textField = [[UITextField alloc] in

2016-09-19 16:07:13 240

原创 UIButton

@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; [self creatUIRectButton]; [self creatImageButton]; UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(

2016-09-19 16:04:58 221

原创 iOS开发之UI手势

基础手势- (UIImageView *)imageView{ if (!_imageView) { _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 70, self.view.bounds.size.width-40, self.view.bounds.size.height/2)];

2016-09-19 16:03:24 705

原创 UINavigationBar

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] init]; self.window.frame = [UIScreen mainScreen]

2016-09-19 15:58:31 248

原创 iOS之Touch系统

Touch系统主要有一下几种方法//懒加载- (UIImageView *)imageView{ if (!_imageView) { _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 70, self.view.bounds.size.width-40, self.view.bounds.s

2016-09-19 15:53:37 257

原创 UI基础之画图

part1:demo效果如下图 @implementation DrawView- (id)initWithFrame:(CGRect)frame { if (self= [super initWithFrame:frame]) { } return self;}//覆盖drawRect方法,可以在此自定义绘画和动画- (void)drawRect:

2016-09-19 15:44:48 892

原创 iOS开发基础之传值

iOS开发的界面传值主要有:属性传值、代理传值、代码块传值、单例传值、KVO传值、通知传值。 下面通过代码举例介绍这6种传值方式属性传值假设有A和B两个视图控制器,现在需要从A传值到B,那么首先在B.h文件中声明一个text属性,用来从A传值到B。然后去到A,先导入B.h文件,创建一个B的对象,然后给该对象的text属性赋值,再到B中输出text,会发现text值已从A传到了B,这就是属性传值。/

2016-09-19 15:26:07 235

原创 iOS开发基础之UILabel控件的用法

UILabel是标签类,它是iphone界面最基本的控件,主要用来显示文本信息。UILabel//根据frame创建UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(50,50,200,200)];//文本内容label1.text = @"自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动

2016-08-31 14:46:14 345

原创 iOS开发之ViewControler

关于视图控制器 **视图控制器用来控制 view 和 model 之间的交互,在iOS中,用UIViewControler表示视图控制器 此类中有一些特定的方法需要开发者在开发过程中完成 1.初始化方法 2.加载视图的方法**初始化方法//下面两个初始化方法,可以重写父类方法,实现自己需要的功能- (id)init { if(self = [super init]

2016-08-30 14:19:56 772

原创 iOS开发之main函数参数的解析

在工程的Supporting Files文件夹中,有一个main函数int main(int argc, char * argv[]) { @autoreleasepool { /** * argc,argv是C标准main函数的参数,直接传递给UIApplicationMain进行相关处理即可; principalClassName:指定

2016-08-29 18:38:48 917

原创 iOS之NSURLSession的使用

URLSession的基本概念1.三种工作方式: 默认会话模式(default):工作模式类似于原来的NSURLConnection,使用的是基于磁盘缓存的持久化策略,使用用户keychain中保存的整数进行认证授权。瞬时会话模式(ephemeral)该模式不使用磁盘保存任何数据。所有和会话相关的caches,证书,cookies等都被保存在RAM中,因此当程序使会话无效,这些缓存的数据就会被自动

2016-08-26 18:08:20 612

原创 ios开发之网络POST请求

GET和POST请求方式的区别: 1.GET是用来从服务器上获得数据,而POST是用来向服务器上传数据。(当然POST也可以做到获取数据的功能,就是在代码里加上返回数据的语句) 2.GET将表单中的数据按照 variable=value 的形式,添加到所请求连接的URL后面,与URL之间使用“?”连接,而各个变量之间使用“&”连接;POST是将变量和值相对应后附加到请求体中,传递到请求连接

2016-08-25 15:03:02 418

原创 IOS开发之网络异步GET请求

同步与异步请求的区别,主要是对于UI冻结的情况是不同的,速度上没什么区别,速度取决于网络情况。但是在UI的反应上,同步请求,在响应数据没有拿到之前UI是不能处理其他事情的,处于一种等待状态;异步请求,在响应数据没有拿到之前UI是不会冻结的,UI仍然可以响应用户的操作。异步请求的步骤和同步请求的步骤大致是一样的,不过异步请求通过NSURLConnection有两种方式,即:使用代理或者代码块。1.创

2016-08-24 19:24:01 252

原创 IOS开发之网络同步GET请求

在网络请求中,HTTP网络请求使用的最多,不管是获取文本还是获取二进制数据,亦或是将数据提交到服务器上。HTTP请求使用起来最为简单,HTTP请求类型分为好几种,例如:GET,POST,PUT,DELETE。这其中最为常见的两种形式就是GET和POST。GET是用来从服务器上获得数据的请求方式。 同步请求的步骤如下:创建NSURL通过NSURL创建NSURLRequest建立NSURLCo

2016-08-24 19:00:26 461

原创 IOS 之 NSURL的一些基本操作

NSURL其实就是网址,这里面包含着一些对字符串的操作。首先拿到一个字符串,里面有我们想要去到的网址NSString *urlString = @"http://f.hiphotos.baidu.com/image/pic/item/e1fe9925bc315c60d916f9d58ab1cb134954770d.jpg";NSURL *url = [NSURL URLwithString:ur

2016-08-24 17:41:05 895

原创 OC之代码块

block block 允许开发者在两个对象之间将任意语句当做数据进行传递 block 使用了与一个函数相同的机制:可以像声明一个函数一样来声明一个block; 可以像定义个函数的方法一样来定义一个block,也可以将block当做一个对象来调用//代码块的声明:// 返回值类型(^代码块的名称)(参数列表);//代码块的实现:// 代码块的

2016-08-24 17:12:30 921

原创 iOS的文件读写

应用程序沙盒苹果公司为iOS每一个应用都分配了一个独立的文件夹,并且将应用程序所能读写的位置几乎都限定在这个文件夹里,这个文件夹可以看做是一个特殊的区域,我们称之为应用程序沙盒(sandbox)。/*/*IOS文件系统 当第一次启动APP的时候,ios操作系统就为此APP创建一个文件系统,该文件系统下默认有四个目录,分别是: Document:存储用户在操作APP时产生的数据,此目录下的数

2016-08-22 19:16:20 674

原创 OC中的单例模式和委托模式

设计模式是一种为了解决某一特定问题而提出来的方案。常见的设计模式有:单例模式、委托模式、观察者模式、职责链模式等等。单例模式单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点。下面用一个例子来说明单例模式的实现思路:/**/什么时候使用单例模式? 在一个工程中,一些类只需要一个实例变量,我们就可以将这些类设计成单例模式。 单例模式的作用? 当一个‘类A’被设

2016-08-18 13:36:31 472 1

原创 OC中的协议(@protocol)

我们之前讲过非正式协议(NSObject的类目),那么肯定还有正式协议。在OC中,一个类可以实现多个协议,通过协议可以弥补单继承的缺陷。但是协议跟继承不一样,协议只是一个方法的列表,方法的实现得靠遵循该协议的类去完成。 **协议:协议是一套标准,这个标准里面声明了很多方法,但是不关心具体这些方法是怎么实现的,具体的实现是由遵循这个协议的类去完成的。**和非正式协议一样,正式协议是一些方法的列表,合

2016-08-17 15:55:59 1639

原创 OC中的通知(NSNotification)、类目(Category)、延展(Extension)

KVO只能监听属性的变化,通过NSString类型的属性名称来实现。实现了自动监听,当属性变化时,会自动通知观察者,不用再添加代码了。但是观察者得持有被观察者的引用,以便被观察者注册观察者,耦合性太高,不利于代码的维护。 NSNotification表灵活,可以监听的内容也不局限于属性的变化,还可以对多种多样的状态变化进行监听,监听范围广,使用也更灵活。但是需要被观察者手动发送通知,观察

2016-08-16 19:09:03 463

原创 OC中的KVC与KVO

到目前为止,可以通过存取方法,属性或直接设置实例变量来直接更改对象状态。也可以通过字符串描述来更改对象状态,这种方式称为键值编码(KVO)。KVC提供了一种运行时而非编译时动态访问对象属性与实例变量的方式。KVC的基本用法 setValue:(要设置的值)forKey:(键,对象的属性名称或者实例变量名称),用来设置实例变量的值。 valueForKey:(对象的属性名称或者

2016-08-15 19:57:18 316

原创 OC中的常用数据类型

计算机中的文件分为“二进制文件”和“文本文件”,其中图片、视频、音频等就是二进制文件,像“.txt”的文件就是文本文件。客户端与服务器端,或者客户端与客户端数据交流的格式为二进制(字节流)。在OC中使用‘NSData’类储存这些字节,在NSData类中,由实例化的对象,此对象包含了大量的字节,这些字节就是客户端想要的重要信息。NSData我们在读写文件或下载数据时,都需要频繁的将数据读入一个临时存储

2016-08-12 18:08:37 1518

转载 一些关于编程好的建议和意见

1.在电脑上写代码应该是最后的才去做的事了,而更多重要的事将在思考与讨论中完成,”他说,“在写码之前,你就应该想好你要做些什么,你想要达成怎样的效果,然后通过哪些方法去做,做的更好。而不是在那儿不过脑子的敲键盘,以至于你都不知道你的逻辑是不是在有效的。一定要记得,你是否优秀不是通过代码行数来决定的,而是通过你的逻辑,你的思想。而你的逻辑和思想,将在你所写的代码中体现。2.公开发布到Github或其他

2016-08-12 15:25:06 657

原创 OC中的字典

NSDictionary字典就是关键字(键)及其定义所构成的集合。字典在给定的关键字下存储一个数值,这个关键字(键)通常是一个NSString类型的字符串,存储的这个数值可以是Object-C里的任意类型的对象。然后你就可以使用这个关键字来找到其对应的值。字典和数组一样,也分为不可变字典(NSDictionary)和可变字典(NSMutableDictionary)。NSDictionar

2016-08-10 18:33:02 1534

原创 OC中的数组

在Object-C中,数组是有序的对象的集合,数组成员不必要数据类型一致,但是成员必须是对象,不能是C语言中的基本数据类型,如:int,float等。使用数组前得先创建数组对象,不管是可变数组还是不可变数组都可以当做方法的参数或返回值来使用。NSArray(不可变数组)1.创建数组及初始化 //NSArray //初始化 //创建一个空的数组

2016-08-08 16:12:14 580

原创 OC中的字符串

1.字符串概述2.字符串相关有用的数据类型3.创建字符创4.NSString的工厂方法5.NSString的常用方法获取字符串长度字符串比较字符串拼接字符串查找及截取字符串其他常用方法6.可变字符串在可变字符串上修改内容

2016-08-05 23:18:52 412 1

原创 封装、继承和多态是面向对象的三大特征。

封装 封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装可以起到隐藏内部实现和稳定外部接口的作用。使用封装具有以下几个好处:使用起来更加简单变量更加安全可以隐藏内部实现开发速度更加快捷其中:类封装了属性和方法方法封装了实现的代码属性封装了成员变量示例://在OC中,几乎所有的类都继承于NSObject@inte

2016-08-05 16:05:01 1448

原创 OC中的属性

采用setter和getter很好的解决了封装和信息共享之间的矛盾,但是也带来一些副作用,最大的麻烦在于工作量大,假如一个类有10个要共享的变量,就要定义20个方法。Object-C 2.0中的属性机制为我们提供了便捷的设置和获取实例变量的方式,或者说:属性提供了一个默认的设置器和访问器的实现。@property一条语句就起到了setter和getter的方法声明的作用。@property NSSt

2016-08-05 16:02:23 242

原创 OC中的方法、设置器与访问器、便利初始化函数及便利构造器的相关问题

OC中的方法: 类方法:以减号(+)开头,`+(void)setName:(NSString *); 实例方法:2.3.4.

2016-08-03 21:15:58 323

原创 OC基本数据类型及三种程序结构

1.OC基本数据类型OC中常用数据类型前缀:NS,例如:NSString(字符),NSInteger(整型),NSUInteger(无符号整型),NSRange(表示范围的结构体),CGFloat(浮点型),CGPoint,CGSize,CGRect,NSArray,NSDictionary,NSDate(美国日期),NSData(二进制数据)2.变量命名规则(1)以字母、下划

2016-08-01 17:07:32 341

原创 OC之面向对象、类概念及使用

1.OC语言特点     (1)Object-c是C语言超集        (2)Object-c具备完善的面向对象特性(3)Object-c具有一个运行时系统(4)Object-c具有丰富的类库2.面向对象编程 与面向过程编程不同,面向对象是把构成问题的事物分解成各个对象,然后协调各个对象之间的联系和通信。基本思想是使用类、属性、方法以及封装、继承

2016-08-01 15:20:50 216

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除