自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JH_1995

选择了远方,便只顾风雨兼程

  • 博客(42)
  • 收藏
  • 关注

原创 本人菜鸟,请大神放开喷

最近转学ios,是第一次接触到应用开发,看到网上大神推荐,就自己找李明杰老师的ios视频学习,收获多多,彻底被征服了,想记录一下自己的学习历程,就新开此博客,上面记录的都是MJ在视频上讲过的,并非自己原创的,本菜鸟只是单纯的记录一下自己学到的东西。请大神勿喷。

2015-12-08 12:30:47 496

原创 hitText方法和pointInside方法

hitText方法和pointInside方法事件传递hitText方法作用 寻找最合适view处理事件什么时候调用 当一个事件传递给一个控件的时候,控件就会调用这个方法返回谁, 谁就是最合适viewhitTest的底层实现- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ // 1.判断下自己能否接收

2016-05-20 22:10:02 1300

原创 简单的文件处理

文件处理怎样判断文件是标准的文件还是文件夹文件夹也是文件, 只是一种特殊的文件方法一:// filepath是需要判断的文件的路径// 该方法会返回一个字典,里面有文件的所有属性,内存大小,创建时间,文件类型.....// 获取文件的类型是:attrs[NSFileType]NSDictionary *attrs = [[NSFileManager defaultManager] att

2016-05-20 20:13:52 531

原创 如何监听Tabbar的点击

如何监听Tabbar的点击如果不是自定义的Tabbar实现UITabBarController的代理方法tabBarController: didSelectViewController:, 每次Tabbar被点击了都会来到这个代理方法在这个代理方法中发送通知在需要监听Tabbar点击的控制器中监听上面发出的通知- (void)tabBarController:(UITabBarContro

2016-05-20 20:11:33 1675

原创 UITextField && UITextView

UITextField不可以滚动.不可以换行可以显示提醒文本UITextField代码创建的时候默认是没有边框的,需要设置边框的样式borderStyle监听UITextField 的输入由于UITextField继承于UIControl,所以可以给UITextField添加Target来监听[textField addTarget:self action:@selector(tex

2016-05-20 20:09:32 398

原创 UIMenuController

UIMenuController的示例UIMenuController须知默认情况下, 有以下控件已经支持UIMenuController UITextFieldUITextViewUIWebView让其他控件也支持UIMenuController(比如UILabel)让Label成为第一响应者 作用是:告诉UIMenuController支持哪些操作, 这些操作如何处理// 这里的

2016-05-20 20:08:23 442

原创 状态栏的控制

状态栏的控制在ios7以后,状态栏默认的是交给控制器控制的- (UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent;}在ios7之前状态栏是交给[UIApplication shareApplication]控制的 在窗口上新增加一个window,可能会导致状态栏不受控制器控制了

2016-05-20 20:06:59 284

原创 控制器View的加载 && 创建

控制器View的加载 && 创建loadView- (void)loadView{ // 系统默认的做法, [super loadView]}自定义控制器的view的时候重写这个方法第一次使用控制器的view的时候调用在这个方法中如果没有自定义view,就不能获取控制器的view(self.view),不然会死循环第一次用到控制器的view的时候(self.view),系统

2016-05-20 20:04:09 377

原创 内容模式

内容模式UIViewContentModeScaleToFill 默认的显示效果(会变形)拉伸充满整个载体UIViewContentModeScaleAspectFit (不会变形)拉伸不改变比例,充满最小的一边会按照图片的宽高比拉伸,直到图片的上下或左右和载体对齐为止,并且要求整张图片都在载体中,然后居中显示UIViewContentModeScaleAspectFill (不会变

2016-05-20 19:56:40 328

原创 程序在后台运行的注意

请求用户授权// 请求用户授权UIUserNotificationSettings *setting = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categori

2016-05-11 20:45:56 427

原创 block的定义,赋值

block的定义block属性或变量 格式:返回值类型(^block名称)(参数列表)可以用strong修饰,也可以用copy修饰,苹果官方建议用copy @property (nonatomic, strong) void(^myBlock)(); // 无参无返回值 @property (nonatomic, strong) void(^myBlock1)(NSString

2016-05-11 20:45:33 2542

原创 键盘处理

键盘处理退出键盘[self.messageField resignFirstResponder][self.messageField endEditing:YES][self.view endEditing:YES]; // 推荐// 叫出键盘[self.messageField becomeFirstResponder]

2016-05-11 20:45:14 305

原创 代理设计模式 && block设计模式 && KVC\KVO

代理设计模式代理设计模式的作用: 1.A对象监听B对象的一些行为,A成为B的代理2.B对象想告诉A对象一些事情,A成为B的代理3.B对象想告诉A对象一些事情,B中声明一个block属性代理设计模式的总结:如果你想监听别人的一些行为,那么你就要成为别人的代理如果你想告诉别人一些事情,那么就让别人成为你的代理代理设计模式的开发步骤1.拟一份协议(协议名字的格式:控件名 + D

2016-05-11 20:44:43 674

原创 tableView性能优化cell循环利用 && 自定义cell

tableView性能优化 - cell的循环利用方式1/* * 什么时候调用:每当有一个cell进入视野范围内就会调用 */- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ // 0.重用标识 // 被st

2016-05-11 20:44:03 1099

原创 百思不得其姐的注意点

百思不得其姐的注意点自定义cell中如何修改cell的frame重写cell的setFrameL:方法- (void)setFrame:(CGRect)frame{ frame.origin.x += 5; frame.size.width -= 10; frame.size.height -= 1; [super setFrame:fra

2016-05-11 20:43:33 5155

原创 百思不得其姐关注模块的推荐关注中 右侧TableView刷新细节

TableView刷新细节右侧TableView的刷新细节注意更新底部刷新控件footer的状态上拉刷新时,在刷新右侧的TableView表格后,根据加载数据的情况更新底部刷新控件的状态下拉刷新时,在刷新右侧的TableView表格后,根据加载数据的情况更新底部刷新控件的状态每次点击左边的分类表格,加载右侧TableView表格数据之前,更新底部刷新控件的状态/

2016-05-11 20:42:02 685

原创 多线程网络总结

多线程NSThreadGCD 队列 并发队列 全局队列自己创建串行队列 自己创建主队列任务:block函数 sync:同步函数async:异步函数单例模式NSOperationRunLoop 同一时间只能选择一个模式运行常用模式 Default:默认Tracking:拖拽UIScrollView网络HTTP请求GET请求

2016-05-11 20:41:24 385

原创 QQ聊天界面注意点

2/28杂// 退出键盘[self.messageField resignFirstResponder][self.messageField endEditing:YES][self.view endEditing:YES]; // 推荐// 叫出键盘[self.messageField becomeFirstResponder]UIKeyboardWillChan

2016-05-11 20:40:39 341

原创 XML解析

XML的解析方式SAX 大小文件都可以NSXMLParserDOM 最好是小文件GDataXMLNSXMLParser的用法创建解析器来解析// 创建XML解析器NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];// 设置代理parser.delegate = self;

2016-02-12 11:47:49 283

原创 ANNetworking的基本使用

get请求AFHTTPSessionManager内部包装了NSURLSession AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager]; NSDictionary *params = @{ @"username" : @"520it",

2016-02-08 22:58:39 388

原创 NSURLSession

get请求有两种方式一、需要请求对象 // 获得NSURLSession对象 NSURLSession *session = [NSURLSession sharedSession]; // 创建任务 NSURLSessionDataTask *task = [session dataTaskWithRequest:[NSURLRequest requ

2016-02-07 14:36:12 518

原创 NSURLConnection

HTTP请求的常见方法GET 所有参数拼接在URL后面,并且参数之间用&隔开 比如http://520it.com?name=123&pwd=345传递了2个参数给服务器 name参数:123pwd参数:345没有请求体一般用来查询数据POST 所有参数都放在请求体中一般用来修改、增加、删除数据创建HTTP请求GET// 请求路径NSStrin

2016-02-06 21:31:14 397

原创 NSConnection和RunLoop的关系

#import "ViewController.h"@interface ViewController () <NSURLConnectionDataDelegate>@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; NSURLConnection *conn = [NSURL

2016-02-06 21:22:13 958

原创 RunLoop

RunLoop对象iOS中有2套API来访问和使用RunLoopFoundation NSRunLoopCore Foundation CFRunLoopRefNSRunLoop和CFRunLoopRef都代表着RunLoop对象NSRunLoop是基于CFRunLoopRef的一层OC包装,所以要了解RunLoop内部结构,需要多研究CFRunLoopRef层面的API(Core F

2016-02-06 20:18:19 278

原创 JSON解析

JSON数据(NSData) -> OC对象(Foundation Object){} -> NSDictionary @{}[] -> NSArray @[]"jack" -> NSString @"jack"10 -> NSNumber @1010.5 -> NSNumber @10.5true -> NSNumber @1false -> NSNumber @0null

2016-02-06 18:34:52 329

原创 NSURLConnection文件上传&&解压缩

文件上传的步骤设置请求头[request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", 分割线] forHTTPHeaderField:@"Content-Type"];设置请求体非文件参数 –分割线\r\n Content-Disposition: form-data; name=”参数名

2016-02-06 18:33:06 309

原创 2月4学习概况

## static的作用: - 修饰局部变量 * 让局部变量只初始化一次 * 局部变量在程序中只有一份内存 * 并不会改变局部变量的作用域,仅仅是改变了局部变量的生命周期(只到程序结束,这个局部变量才会销毁)修饰全局变量 全局变量的作用域仅限于当前文件

2016-02-04 14:00:14 242

转载 Core Animation系列之CADisplayLink

原文地址:http://blog.csdn.net/wzzvictory/article/details/22417181一、简介1、所在框架CADisplayLink和其它CoreAnimation类一样,都是在QuartzCore.framework里。2、功能CADisplayLink最主要的特征是能提供一个周期性的调用我们赋给它的selector的机制,从这点上看它很像定时器NSTimer。

2016-02-04 13:52:52 390

原创 GCD&&单粒

GCD基本思想GCD的基本思想是就将操作放在队列中去执行 操作使用Blocks定义队列负责调度任务执行所在的线程以及具体的执行时间队列的特点是先进先出(FIFO)的,新添加至对列的操作都会排在队尾GCD中的专用术语同步函数和异步函数主要影响:能不能开启新的线程同步函数:只是在当前线程中执行任务,不具备开启新线程的能力异步函数:可以在新的线程中执行任务,具备开启新线程的能力(特殊情况:在

2016-02-03 14:20:51 355

原创 父子控制器

控制器父子关系的建立原则如果2个控制器的view是父子关系(不管是直接还是间接的父子关系),那么这2个控制器也应该为父子关系[a.view addSubview:b.view];[a addChildViewController:b];// 或者[a.view addSubview:otherView];[otherView addSubbiew.b.view];[a a

2016-01-30 20:28:58 379

原创 手势识别

手势识别器UIGestureRecognizer为了完成手势识别,必须借助于手势识别器—-UIGestureRecognizer利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势UITapGestureRecognizer // 敲击

2016-01-26 12:28:59 650

原创 触摸事件的传递 && 响应者链条

响应者对象什么是响应者对象继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”UIApplication、UIViewController、UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件UIResponderUIResponder内部提供了以下方法来处理事件触摸事件- (void)touchesBegan:(NSSet *

2016-01-25 21:36:55 505

原创 1.15-学习概况

1月15tableView的cell创建方式先从缓存池中,如果缓存池中没有可循环利用的cell,先去中找到合适的cell ,如果storyboard没有的话,再从我们写的代码创建偏好设置● 很多iOS应用都支持偏好设置,比如保存用户名、密码、字体⼤小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 ● 每个应⽤都有个NSUserDefaults实例,通过它来存取偏

2016-01-15 14:19:31 249

原创 Quartz 2D 简单应用【打水印】&&【图片裁剪】&&【屏幕截图】

打水印一、代码实现 UIImage *bgImage = [UIImage imageNamed:@"scene"]; // 上小文 : 基于位图(bitmap) , 所有的东西需要绘制到一张新的图片上去 // 1.创建一个基于位图的上下文(开启一个基于位图的上下文) // size : 新图片的尺寸 // opaque : YES : 不透

2016-01-11 09:52:05 418

原创 UIDatePicker && UIToolbar【时期选择器】

常用方法和属性UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面

2015-12-29 20:08:58 413

原创 UIPickerView【随机点菜系统 && 省市联动 && 选择国旗】

UIPickerView 1. UIPickerView的常见属性数据源(用来告诉UIPickerView有多少列多少行)@property(nonatomic,assign) id dataSource;代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择)@property(nonatomic,assign)

2015-12-29 12:33:04 573

原创 UITableView基础【数据刷新 && 模型数据中嵌套模型数据】

UITableView一、概述在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,类似于微信、QQ、新浪微博等软件基本上随处都是UITableView。UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳。 二、基本介绍UITableView有两种风格:UITableViewStylePlain 和 UITableViewStyleGrou

2015-12-20 13:46:09 759

原创 模型的应用 && Xib &&代理模式的应用【应用管理】

模型模型取代字典的好处使⽤用字典的坏处 ⼀一般情况下,设置数据和取出数据都使⽤用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲。例如: dict[@"name"] = @"Jack"; NSString *name = dict[@"name"];手敲字符串key,key容易写错 。Key如果写错了,编译器不会有任何警告和报错,造成设错数据或者取错数据。使⽤

2015-12-10 17:11:00 399

原创 UIAlertController【对话框】

UIAlertController在iOS 8中,UIAlertController在功能上是和UIAlertView以及UIActionSheet相同的,UIAlertController以一种模块化替换的方式来代替这两个类的功能和作用。最基础的对话框创建对话框视图控制器UIAlertController *alertController = [UIAlertController

2015-12-09 19:02:14 985

原创 UIScrollView和UIPageControl的分页 && NSTimer【图片轮播器】

UIScrollView和UIPageControl的分页一、分页只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示。(根据ScrollView的规格进行分页)一般会配合UIPageControl增强分页效果。二、UIPageControl常用属性一共有多少页 @property(nonatom

2015-12-08 22:12:40 545

空空如也

空空如也

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

TA关注的人

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