自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 iOS导航栏颜色不一致问题

有时候我们会遇到设置了导航栏的颜色,但是显示的颜色与我们设置的色值有偏差,我们可以通过以下方法解决。方法1:```- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController.navigationBar setBackgroundImage:...

2019-11-19 13:32:26 1554

原创 链式编程初体验

链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好。a(1).b(2).c(3)链式编程特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值)代表:Masonry框架。[View mas_makeConstraints:^(MASConstraintMaker *make) {

2016-07-24 11:50:49 631

原创 Swift自定义转场动画

1.通过storyBoard加载控制器 let sb = UIStoryboard(name: "WYPopViewController", bundle: nil) // 1.需要勾选箭头 let vc = sb.instantiateInitialViewController()! // 2.通过id加载 let vc = sb.instantiate

2016-03-18 23:00:38 676

原创 Swift实现视图拉伸效果

头部视图拉伸效果1.创建ViewController,懒加载collectionView // MARK: - 懒加载collectionView private lazy var collectionView : UICollectionView = { let rect = CGRectMake(0, 0, ScreenRect.width, Scr

2016-03-17 18:56:29 1418

转载 Runtime运行时机制

文/Sam_Lau(简书作者)原文链接:http://www.jianshu.com/p/25a319aee33d著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和转发。下面通过分析Apple开源的Runt

2016-03-16 23:56:45 370

原创 KVO的使用

kVO的使用Key Value Observing, 顾名思义就是一种observer 模式用于监听property的变化,KVO跟NSNotification有很多相似的地方, 用addObserver:forKeyPath:options:context:去start observer, 用removeObserver:forKeyPath:context去stop observe

2016-03-15 21:49:15 194

原创 KVC的使用

简述KVC是Key Value Coding的简称,意思是键值编码。简要来说,KVC提供了一种在运行时而非编译时动态访问对象属性与成员变量的方式,也就是说,我们可以用字符串的内容作为属性名称或者成员变量名称进行访问。使用1.利用KVC可以随意修改一个对象的属性或者成员变量(私有的也可以修改)。其中,key为被修改对象的名称或者其成员变量名称。#import @inter

2016-03-14 22:00:13 438

原创 Swift实现UITableViewCell的翻转效果

Swift实现UITableViewCell的翻转效果

2016-03-08 23:45:47 1253

原创 SQLite3数据库

SQL结构化查询语言是一种对关系型数据库的数据的定义和操作的语言SQL语句的特点:1>不区分大小写2>每条语句必须以分号结尾SQL中的常用关键字有select、insert、update、delete、from、create、where、desc、order、by、group、table、alter、view、index等等数据库中不可以使用

2016-02-27 21:04:58 265

原创 网络---大文件的下载(NSURLConnection)

使用NSURLConnection来实现大文件的下载NSURLConnection的使用步骤使用NSURLConnection发送请求的步骤很简单1.创建一个NSURL对象,设置请求路径2.传入NSURL创建一个NSURLRequest对象,设置请求头和请求体3.使用NSURLConnection发送NSURLRequest // 1.URL

2016-02-25 23:05:53 273

原创 网络---大文件的下载(NSURLSession)

小文件的下载相对比较简单,但往往大文件的下载会比较常见,也相对来说比较复杂利用NSUrlSession NSURLSession * session = [NSURLSession sharedSession]; NSURL * url = [NSURL URLWithString:@"下载地址"]; [[session downloadTaskWith

2016-02-25 22:48:04 330

原创 网络---小文件的下载

在实际开发过程中,经常会遇到文件的下载操作,接下来就介绍一下文件下载的操作方法:a> 使用 [NSData dataWithContentsOfURLdispatch_async(dispatch_get_global_queue(0, 0), ^{ NSURL *url = [NSURL URLWithString:@"下载地址”];

2016-02-25 22:12:20 259

原创 网络---XML解析

一、什么是XML全称是ExtensibleMarkup Language,译作“可扩展标记语言”跟JSON一样,也是常用的一种用于交互的数据格式一般也叫XML文档(XML Document)二、XML的解析在iOS中,解析XML的手段有很多苹果原生NSXMLParser:SAX方式解析,使用简单第三方框架libxml2:纯C语

2016-02-05 11:23:56 290

原创 多线程之NSOperation

NSOperationNSOperation/NSOperationQueue 配合使用费,开启线程! OC的框基于 GCD ! 更加面向对象(oc),但GCD效率更高!NSOperation : 封装了 GCD 中的"任务"!NSOperationQueue : 封装了 GCD 中的"队列"!NSOperation的作用

2016-01-27 18:19:58 152

原创 单例

//.h文件#define singleton_h(name) + (instancetype)shared##name;//.m文件抽取如果有多行空格也需要用\连接起来#if __has_feature(objc_arc) //ARC环境下#define singleton_m(name) static id _instan

2016-01-27 16:34:00 224

原创 多线程之GCD

什么是GCD全称是Grand Central Dispatch,可译为“强大的中枢调度器”纯C语言,提供了非常多强大的函数GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务,不需要编写任何线

2016-01-27 15:58:59 231

原创 多线程之线程的状态

线程状态线程状态新建实例化线程对象就绪向线程对象发送 start 消息,线程对象被加入 可调度线程池 等待 CPU 调度detachNewThreadSelector 方法和 performSelectorInBackground 方法会直接实例化一个线程对象并加入 可调度线程池运行CPU 负责调度可调度线程池中线程的执行线程执行完成之前(死亡之前),状

2016-01-27 14:46:28 213

原创 多线程之NSThread的三种创建方式

创建线程的三种方式第一种:通过NSThread的对象方法第二种:通过NSThread的类方法第三种:通过NSObject的方法准备在后台线程调用的方法 longOperation:- (void)longOperation:(id)obj { NSLog(@"%@ - %@", [NSThread currentThread], obj);}方式1:alloc

2016-01-24 12:09:12 220

原创 Swift入门———getter & setter

getter & setter自定义 Person 类class Person: NSObject { var name: String? var age: Int?}getter & settervar _name: String?var name: String? { get { return _name } s

2016-01-18 23:14:04 367

原创 swift入门———函数

函数func sum(a: Int, b: Int) -> Int { return a + b}小结函数定义格式:func 函数名(参数: 参数类型...) -> 返回值 { // 代码实现 }如果没有返回值, -> 返回值 可以省略-> 是一个很有意思的符号默认情况下,在调用函数时,第一个参数名是省略的参数名的特殊处理强制要求参数名f

2016-01-17 10:45:40 391

原创 新特性界面之动画展示

新特性界面当我们在应用商店下载一个应用或者更新一款应用时,进入应用首先看到的是界面展示,一个炫酷的界面展示肯定会吸引众多目光,但如何做一个比较有意思的界面呢?1>首先创建一个控制器,继承自UIViewController @interface WTNewFeatureController ()@property (weak,nonatomic) UICollectionV

2016-01-14 22:42:46 765

原创 swift入门———字典

字典/// 定义并实例化字典var dict = [String: AnyObject]()dict["name"] = "zhangsan"dict["age"] = 18println(dict)// 设置相同 key,之前的数值会被覆盖dict["name"] = "lisi"println(dict)// 删除某一个 keydict.removeValueFo

2016-01-10 22:19:22 267

原创 swift入门———数组

数组简单体验let arr = ["zhangsan", "lisi"]println(arr)// 遍历每一个元素for a in arr { println(a)}// 像 OC 一样打印println(arr as NSArray)数组中保存的对象类型// 数组中保存的都是字符串let arr = ["zhangsan", "lisi"]/

2016-01-09 22:16:10 346

原创 Swift入门———字符串

字符串在 Swift 中绝大多数的情况下,推荐使用 String 类型使用 String 的原因String 是一个结构体,性能更高String 目前具有了绝大多数 NSString 的功能String 支持直接遍历NSString 是一个 OC 对象,性能略差Swift 提供了 String 和 NSString 之间的无缝转换遍历字符串let str

2016-01-08 22:17:27 161

原创 Swift入门———循环

循环OC风格的 for// 传统写法for var i = 0; i 10; i++ { println(i)}Swift风格的 for// 遍历 0 ~ for i in 0..10 { println(i)}println("---")// 遍历 0 ~ 10for i in 0...10 { println(i)}小结

2016-01-07 21:57:49 389

原创 Swift入门———逻辑分支

逻辑分支var i = 10if i > 0 { println("OK")}小结Swift 中没有 C 语言中的非零即真概念在逻辑判断时必须显示地指明具体的判断条件if 语句条件的 () 可以省略但是 {} 不能省略三目运算var a = 10var b = 50var result = a > b ? a : bprintln(r

2016-01-06 21:44:53 232

原创 Swift入门———常量&变量

常量&变量// 定义变量var i = 10println(i)i = 15println(i)let j = 20// 常量一经定义不能自改数值// j = 25println(j)小结var 定义变量,设置之后可以修改let 定义常量,设置之后不可以修改语句末尾不用使用 ; 如果一行有多条语句,必须使用;在 Swift 中使用 printl

2016-01-05 21:55:53 240

原创 CABasicAnimation(2)

CABasicAnimation简介CABasicAnimation是CAPropertyAnimation的子类,使用它可以实现一些基本的动画效果,它可以让CALayer的某个属性从某个值渐变到另一个值。下面就用CABasicAnimation实现几个简单的动画。先初始化一个view UIView * greenView = [[UIView alloc] init];

2016-01-04 23:59:33 186

原创 Core Animation核心动画(1)

一、什么是核心动画?Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。* Core Animation可以用在Mac OS X和iOS平台。* Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。*

2016-01-03 22:30:17 261

原创 手势解锁的实现

思路总结:1>touchBegin (获取当前的触摸点,如果当前的触摸点在按钮的范围内,并且该按钮的状态不是高亮,就将该按钮添加到数组中)2>touchMove(将当前的触摸点赋值给标记属性【self setNeedsDisplay】)3>touchEnd(如果当前点不在按钮范围内,就将当前点赋值为数组中的最后一个点)4>

2016-01-02 23:41:08 542 1

原创 常见的项目文件

常见的项目文件一、项目文件结构示意图二、文件介绍1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件2.frameworks文件夹主要用来放依赖的框架3.test文件夹是用来做单元测试的4.常用的文件夹(项目名称文件夹)(1)XXXinfo.plist文件(在该项目中为  01-常见文件

2016-01-02 21:07:03 677

原创 时钟的简单实现

1.>使用Masory添加约束2.>通过锚点定位指针3.>使用transform实现旋转@interface ViewController ()/** 分针 */@property (weak,nonatomic) UIView * blueView;/** 时针 */@property (weak,nonatomic) UIView * greenView;/**

2016-01-01 23:49:32 235

原创 裁剪带圆环的图片

利用Quartz2D将一张正方形的图片裁剪成一张带有圆环的图片思路:先画一个大圆,再画一个小圆(同心圆),然后将要裁剪的图片画到小圆上,裁剪掉多余的部分。示意图如下:代码: // 原图 UIImage * img = [UIImage imageNamed:@"btn_01"]; CGFloat margin = 5;// 圆环半径 CGFlo

2016-01-01 22:06:57 803

原创 Quartz2D 之饼状图、柱状图、进度条

Quartz2D绘图的代码步骤1.获得图形上下文CGContextRef ctx=UIGraphicsGetCurrentContext();2.拼接路径(下面代码是搞一条线段)CGContextMoveToPoint(ctx,10,10);CGContextAddLineToPoint(ctx,100,100);3.绘制路径CGContextStrokeP

2015-12-31 23:45:55 238

原创 plist和NSUserdefaults存储

plistl属性列表是一种XML格式的文件,拓展名为plistl如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中获取Documents:(2种方式)1>利用沙盒根目录拼接”Documents”字符串

2015-12-29 22:12:51 191

原创 无限滚动

在工作中有时候我们会遇到无限滚动,比如相册,广告等,今天就用UICollectionView来实现无限滚动,话不多说,都在代码中了!#define ID @"photo"#define KMaxSections 100@interface PhotoViewController () @property (weak, nonatomic) IBOutlet UICollecti

2015-12-28 22:38:39 222

原创 UIPickerView

vsdsdad

2015-12-27 19:28:04 273

原创 UICollectionView之瀑布流

pffff

2015-12-25 22:43:37 347

原创 Masonry框架的使用

首先,看到下图中的要求,你可能会想,使用AutoLayout添加约束很容易实现啊,但是在工作中让你使用代码实现,是不是很心塞。下面就介绍一个很好用的,用来实现布局的框架 Masonry创建好工程,导入Masonry.h头文件,先对红色的view添加约束,有5种书写方式:1>2>3>         4>

2015-12-23 23:47:58 203

原创 屏幕适配-----Autoresizing和AutoLayout

屏幕适配的发展过程一.直接使用 frame计算控件的位置、大小(MagicNumber)1.iPhone3GS\ iPhone4 \ iPhone4S 屏幕的物理尺寸是一样的(无需屏幕适配), 而且一个当时的应用要么是横屏要么是竖屏, 不存在能同时进行横竖屏切换的应用二.使用 Autoresizing进行屏幕适配(设置显示规则,只能按照父控件来设置参照)1.随着iP

2015-12-22 22:24:58 662

空空如也

空空如也

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

TA关注的人

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