iOS开发
文章平均质量分 50
Seal_Shile
这个作者很懒,什么都没留下…
展开
-
iOS 多线程 - NSOperation
有限的自动化多线程。一、使用步骤 1.先将需要执行的操作封装到一个NSOperation对象中 2.然后将NSOperation对象添加到NSOperationQueue中 3.系统会自动将NSOperationQueue中的NSOperation取出来 4.将取出的NSOperation封装的操作放到一条新线程中执行二、基本属性 1.并发数 并发数设置在5以内,一般为2~3,子线程过多原创 2016-02-23 17:02:20 · 443 阅读 · 0 评论 -
iOS 多线程 - GCD
Grand Central Dispatch,“牛逼的中枢调度器”,纯C语言,提供了非常多强大的函数。 GCD是多核并行运算解决方案 ,自动利用更多的CPU内核(比如双核、四核),会自动管理线程的生命周期(创建线程、调度任务、销毁线程) 一、使用步骤 GCD中有2个核心概念 (1)任务:执行什么操作 (2)队列:用来存放任务 GCD的使用就2个步骤 (1)定制任务 (2)确定想做原创 2016-02-23 17:02:47 · 313 阅读 · 0 评论 -
iOS 设计模式 - 单例模式
有些任务只能有一个实例,比如打印任务,比如一些资源管理器UML图 一、使用步骤1.写法一(1)防止子类继承(2)确保实例对象只出现一个staticSLManager *center;@implementation SLManager+ (instancetype)defaultManager { //只创建一个实例 staticdispatch_once_t predicate;原创 2016-02-25 10:37:58 · 281 阅读 · 0 评论 -
iOS - 功能模块 - 设置页面
设置页实现方法:(1)可以直接利用代码,返回三组,在判断每组有多少行,展示些什么数据,这样写“死”的代码建议绝不要使用。(2)稍微灵活一些的,可以把plist文件一懒加载的方式,加载到程序中,动态获取,需要进行模型嵌套。Demo:https://github.com/shileseal/SLUITableViewWithPlistDemo (3)storyboard提供了静态单元格这个功能,可以很原创 2016-03-15 15:54:53 · 886 阅读 · 0 评论 -
iOS 网络 - NSURLSession
NSURLSession提供的功能: 1.通过URL将数据下载到内存; 2.通过URL将数据下载到文件系统; 3.将数据上传到指定的URL; 4.在后台完成上述功能. 5.支持下载,断点续传,后台上传/下载,后台上传/下载任务跟进一、使用步骤 1. 定义一个NSURLRequest NSString *urlString = @”http://imgs.soufun.com/n原创 2016-02-23 17:03:13 · 376 阅读 · 0 评论 -
iOS 设计模式 - 享元模式
iOS 设计模式 - 享元模式原创 2016-03-05 15:40:06 · 410 阅读 · 0 评论 -
iOS 设计模式 - 模板模式
iOS 设计模式 - 模板模式原创 2016-03-05 15:40:22 · 299 阅读 · 0 评论 -
iOS 设计模式 - 责任链模式
iOS 设计模式 - 责任链模式原创 2016-03-05 15:41:53 · 377 阅读 · 0 评论 -
iOS 第三方库 - iCarousel
iOS 第三方库 - iCarousel原创 2016-03-05 15:44:58 · 545 阅读 · 0 评论 -
iOS - 功能模块 - 幻灯片切换
依据性能需求,实现iOS幻灯片切换功能。1.图片少的情况下 Demo:https://github.com/shileseal/SLCarouselDemo#import "ViewController.h"@interfaceViewController ()<UIScrollViewDelegate>@property (weak, nonatomic) IBOutletUIScrollV原创 2016-03-05 16:00:55 · 1555 阅读 · 0 评论 -
iOS UIKit - Autolayout
AutoLayout是一种基于约束的,描述性的布局系统。 基于约束 - 和以往定义frame的位置和尺寸不同,AutoLayout的位置确定是以所谓相对位置的约束来定义的,比如x坐标为superView的中心,y坐标为屏幕底部上方10像素等 描述性 - 约束的定义和各个view的关系使用接近自然语言或者可视化语言(稍后会提到)的方法来进行描述 布局系统 - 即字面意思,用来负责界面的各个元素的原创 2016-02-23 16:52:50 · 386 阅读 · 0 评论 -
iOS UIKit - UIScrollView
展示内容大于屏幕的滚动展示一、使用步骤 1.创建UIScrollView // 1.创建UIScrollView UIScrollView *scrollView = [[UIScrollView alloc] init]; scrollView.frame = CGRectMake(0, 0, 250, 250); // frame中的size指UIScrollVi原创 2016-02-23 16:54:39 · 276 阅读 · 0 评论 -
iOS UIKit - UICollectionView
实现垂直方向的单列表来说,使用UITableView足以;若是需要构建横向滑动列表、gridView等直线型布局,则使用UICollectionView+UICollectionViewFlowLayout搭建最合适;更复杂的布局,则可以使用UICollectionView+自定义Layout来实现。 而这篇博客就来介绍一下UICollectionView。 首先,来了解一下UICollecti原创 2016-02-23 16:55:27 · 324 阅读 · 0 评论 -
iOS UIKit - UINavigationController
栈 用来管理多个试图控制器,主要管理有层级关系的控制器 层级关系层次结构一、使用步骤 1.storyBoard创建 上面看着很高大上,下面看个个人的,从控件库中拖入一个Navigation Controller,然后新建两个ViewController:拖入的一个NavigationController可以直接使用,需要演示,后面有多加了一个View:Demo实现主页的ViewControl原创 2016-02-23 16:56:11 · 324 阅读 · 0 评论 -
iOS UIKit - TabBarController
数组。 管理多个控制器,完成控制器之间的切换。一、使用步骤 1.storyBoard创建2.代码创建 (1)创建UIWindow self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];(2)初始化UITabBarController UITabBarController *原创 2016-02-23 16:56:32 · 294 阅读 · 0 评论 -
iOS UIKit - 手势处理
UIGestureRecognizer 的子类,开发者可以直接使用他们进行手势操作。 UIPanGestureRecognizer(拖动) UIPinchGestureRecognizer(捏合) UIRotationGestureRecognizer(旋转) UITapGestureRecognizer(点按,离散型手势,特点就是:一旦识别就无法取消,而且只会调用一次手势操作事件(初始化手原创 2016-02-23 16:57:35 · 580 阅读 · 0 评论 -
iOS UIKit - 键盘处理
点击return或者键盘外部之后,处理键盘消失 键盘出现时,避免键盘遮住输入框一、使用步骤 (1)处理键盘消失 1. 通过UITextFiledDelegate,来释放第一响应者 (resignFirstResponder); 这种通过delegate释放键盘的代码如下: - (BOOL)textFieldShouldReturn:(UITextField *)textField {原创 2016-02-23 16:57:55 · 404 阅读 · 0 评论 -
iOS UIKit - 通知机制
通知机制的5中方式: Target/Action Delegation NSNotification KVO Block 一、使用步骤 1.Target/Action [self.btn addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside];} -(voi原创 2016-02-23 16:58:29 · 387 阅读 · 0 评论 -
iOS QuartzCore - 2D绘图
图形上下文(Graphics Context):CGContextRef类型的数据,保存绘图信息、绘图状态 绘图流程: 绘制好的图形先保存到图形上下文,后显示到输出目标一、使用步骤 1.绘图 UIGraphicsBeginImageContextWithOptions( CGSizeMake(200, 200), NO, 0); //1.获取bitmap上下文 CG原创 2016-02-23 16:59:08 · 403 阅读 · 0 评论 -
iOS QuartzCore - CALayer
在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @property(nonatomic,readonly,retain) CALayer *layer; 当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上。UIVie原创 2016-02-23 16:59:28 · 354 阅读 · 0 评论 -
iOS QuartzCore - Core Animation
后台操作的,不会阻塞主线程 直接作用在CALayer上的,并非UIView一、使用步骤 1.基础动画 1创建核心动画 CABasicAnimation *anima=[CABasicAnimation animation];1.1告诉系统要执行什么样的动画anima.keyPath=@"position";//设置通过动画,将layer从哪儿移动到哪儿anima.fro原创 2016-02-23 16:59:49 · 244 阅读 · 0 评论 -
iOS UIKit - UITableView
一、UITableView使用步骤实现UITableViewDataSource协议里的方法1.有多少块数据-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return1;//整体显示1块数据 } 1 2 3 4 2.每块数据有多少行-(NSInteger)table原创 2016-02-23 16:55:06 · 307 阅读 · 0 评论 -
iOS 第三方库 - FMDB
https://github.com/ccgus/fmdb 对SQLite API进行封装的库一、使用步骤1.在FMDB下载文件后,工程中必须导入FMDB的库,并使用 libsqlite3.dylib 依赖包。FMDB同时兼容ARC和非ARC工程,会自动根据工程配置来调整相关的内存管理代码。2.创建数据库db = [FMDatabase databaseWithPath:database_path原创 2016-02-23 23:18:00 · 295 阅读 · 0 评论 -
iOS 第三方库 - SDWebImage
https://github.com/rs/SDWebImage 图片缓存,处理大量的图片一、使用步骤1.下载SDWebImage,导入工程。2.在需要的地方导入头文件#import "UIImageView+WebCache.h"3.调用sd_setImageWithURL:方法缓存图片(1)sd_setImageWithURL: //图片缓存的基本代码,就是这么简单 [self原创 2016-02-23 23:23:44 · 310 阅读 · 0 评论 -
iOS UIKit - Xib
使用xib开发界面纯代码写界面有时候会降低开发效率,对于一些通用简单的界面,例如程序设置界面,可以使用xib进行开发。 一、关于xib 1. xib和nib xib文件可以被Xcode编译成nib文件,xib文件本质上是一个xml文件,而nib文件就是编译后的二进制文件,该文件将视图等控件对象封装了起来,而在程序运行起来后,这些对象会被激活。 xib文件本质上是一个xml文件,可以用vim或原创 2016-02-23 16:53:45 · 239 阅读 · 0 评论 -
iOS 网络 - AFNetworking 3.0
弃用的类 下面的类已从AFNetworking 3.0中废弃: AFURLConnectionOperation AFHTTPRequestOperation AFHTTPRequestOperationManager修改的类 下面的类包含基于NSURLConnection的API的内部实现。他们已经被使用NSURLSession重构: UIImageView+AFNetworking原创 2016-02-23 17:03:35 · 714 阅读 · 0 评论 -
iOS UI设计 - 设计步骤
一、设计规范界面尺寸 图标尺寸字体iPhone 上的字体英文为: HelveticaNeue 至于中文,Mac下用的是黑体-简,Win下则为华文黑体,所有字体要用双数字号。 百度用户体验部做过一个小调查, 对于app字体大小的调查结论如下: 颜色值IOS颜色值取 RGB各颜色的值比如某个色值,给予IOS开发的色值为 R:12 G:34 B:56 给出的值就是 12,34,56(有时也要根据开发原创 2016-02-23 16:50:03 · 489 阅读 · 0 评论 -
iOS - 性能优化
UICollectionView原创 2016-02-22 17:35:22 · 336 阅读 · 0 评论 -
iOS - 内存管理
一、作用1.什么是GCD? Grand Central Dispatch,“牛逼的中枢调度器”,纯C语言,提供了非常多强大的函数。2.GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多的CPU内核(比如双核、四核) GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程) 程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码二、任务和队列原创 2016-02-16 12:08:48 · 332 阅读 · 0 评论 -
iOS - Block
$ git config --global user.name "your name"$ git config --global user.email "your_email@youremail.com"$ git init$ git add (your files)$ git commit -m 'message内容'$ git remote add origin git@github.原创 2016-02-16 09:47:29 · 321 阅读 · 0 评论 -
iOS 第三方库 - MBProgressHUD
https://github.com/jdg/MBProgressHUD 一、使用步骤1.下载MBProgressHUD,导入工程。2.在需要的地方导入头文件。#import <MBProgressHUD/MBProgressHUD.h>3.使用HUD(1)主线程让HUD旋转,开启子线程处理长时间的任务。[MBProgressHUD showHUDAddedTo:self.view animat原创 2016-02-24 22:34:21 · 390 阅读 · 0 评论 -
iOS 第三方库 - FastCoding
https://github.com/nicklockwood/FastCoding 序列化是把对象转化成字节序列的过程 反序列化是把字节序列恢复成对象 FastCoder 是一个高效的二进制序列化格式,用于存储 Cocoa 对象的.它被设计用来替换 NSPropertyList, NSJSONSerializer, NSKeyedArchiver/Unarchiver 以及 Core Dat原创 2016-02-24 23:16:22 · 1134 阅读 · 0 评论 -
iOS 第三方库 - MJExtension
https://github.com/CoderMJLee/MJExtension MJExtension是一套字典和模型之间互相转换的超轻量级框架 只需要一行代码,就能实现模型的所有属性进行Coding(归档和解档) JSON –> Model、Core Data Model JSONString –> Model、Core Data Model Model、Core Data Mode原创 2016-02-24 23:16:54 · 760 阅读 · 0 评论 -
iOS 第三方库 - MJRefresh
https://github.com/CoderMJLee/MJRefresh 用法简单的下拉刷新框架:一行代码搞定 UIScrollView、UITableView、UICollectionView、UIWebView原创 2016-02-24 23:17:14 · 359 阅读 · 0 评论 -
iOS 第三方库 - Masonry
https://github.com/SnapKit/Masonry Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局。 简洁明了,并具有高可读性。 同时支持 iOS 和 Max OS X。原创 2016-02-24 23:17:36 · 304 阅读 · 0 评论 -
iOS 第三方库 - ReactiveCocoa
https://github.com/ReactiveCocoa/ReactiveCocoa 在我们iOS开发过程中,当某些事件响应的时候,需要处理某些业务逻辑,这些事件都用不同的方式来处理。 比如按钮的点击使用action,ScrollView滚动使用delegate,属性值改变使用KVO等系统提供的方式。 其实这些事件,都可以通过RAC处理 ReactiveCocoa为事件提供了很多处理原创 2016-02-24 23:17:59 · 476 阅读 · 0 评论 -
iOS UIKit - 视图结构
(1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。 (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。 (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对象原创 2016-02-23 16:51:57 · 439 阅读 · 0 评论 -
iOS - 学习路径图
基础iOS - Runtime iOS - RunLoop iOS - Block iOS - 性能优化 iOS - 内存管理UI设计iOS UI设计 - 设计步骤UIKItiOS UIKit - 视图结构iOS UIKit - Autolayout iOS UIKit - XibiOS UIKit - UIScrollView iOS UIKit - UITableView iOS原创 2016-01-06 10:00:43 · 1627 阅读 · 1 评论 -
iOS - 面试题
前言目前看来,多数iOS的面试题质量都不是太高,整理合并了多份文档,但是疏漏太多。等有时间,我再自己写一份面试题。1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?Object-c的类不可以多重继承,可以实现多个接口,通过实现多个接口可以完成C++的多重继承。 Category是类别,一般情况用分类好,用Categor原创 2015-10-23 19:40:56 · 1164 阅读 · 0 评论 -
iOS - Runtime
RunTime,运行时,就是系统在运行的时候的一些机制,最主要的是消息机制。 C语言,函数的调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行,无任何二义性。 OC语言,函数调用属于动态调用,即消息发送。 在编译的时候并不能决定真正调用哪个函数(事实证明,在编 译阶段,OC可以调用任何函数,即使这个函数并未实现,只要申明过就不会报错。而C语言在编译阶段就会报错)。 只有在真正运行的原创 2016-02-15 20:11:13 · 339 阅读 · 0 评论