自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 iOS frame与bounds区别详解

在iOS的UI开发中,frame和bounds是两个非常容易搞混的概念,而很多开发者在实际项目中也很少去区分,因此会导致出现一些意想不到的问题。本篇博客以实际代码的方式来学习frame和bounds的使用。相关示例代码上传至 https://github.com/chenyufeng1991/FrameAndBounds ,欢迎大家下载查看。(1)先来查看一个界面中的容器self.view

2018-02-05 17:37:26 1099

原创 你给我解析清楚,都有了CALayer了,为什么还要UIView

“你给我解析清楚,都有了CALayer了,为什么还要UIView!” 听到这种问题,是不是愣住了。WTF!这都是什么乱起八糟的问题。UIView继承自UIResponder,主要特点是可以响应触摸事件。而CALayer实际的图层内容管理。大家干的的事情不一样,是两个东西,大家的存在互不影响,理所当然。但仔细想想,真的是步步高点读机,So Easy吗?在细细揣摩背后的用意的时

2018-02-02 10:46:46 952

原创 IOS事件传递机制

前言:按照时间顺序,事件的生命周期是这样的:  事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应)其中重点和难点是:  1.如何寻找最合适的view  2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现

2018-01-31 15:08:14 223

原创 iOS中几个常用协议 NSCopying/NSMutableCopying

1、几点说明说到NSCopying和NSMutableCopying协议,不得不说的就是copy和mutableCopy。如果类想要支持copy操作,则必须实现NSCopying协议,也就是说实现copyWithZone方法;如果类想要支持mutableCopy操作,则必须实现NSMutableCopying协议,也就是说实现mutableCopyWithZone方法;iOS系统中的一些

2017-12-21 16:27:19 688

原创 iOS8中用UIVisualEffectView实现高斯模糊视图(毛玻璃效果)

在需要模糊的UIView上,添加一个UIVisualEffectView对象即可。效果如下图:    UIBlurEffectStyleExtraLight             UIBlurEffectStyleLight                     UIBlurEffectStyleDark          

2017-12-04 17:12:54 3034

原创 UIImageResizingModeStretch聊天气泡的图片拉伸

对于有些图标等按钮 在美工设计的按钮下可以通过拉伸效果处理所需效果,最熟悉的莫过于微信聊天的 椭圆背景,也是通过这个这个原理进行背景图片。 如对该图片拉伸,如何操作? 首先找到要拉伸的部分,很明显 两侧椭圆是不变 要拉伸的是中间部分,如何指定中间部位,先看下图指定这4个宽度后 会形成黑色模块 直白点就是 这块内容就是拉伸后中间那块不断填充

2017-12-04 16:16:19 603

原创 使用CocoaPods管理第三方开源类库

iOS开发中经常会用到许多第三方开源类库,比如AFNetworking、FMDB、JSONKit等等,使用CocoaPods这个工具就能很方便得对工程中用到的类库进行管理,包括自动下载配置以及更新。 首先需要下载安装CocoaPods,系统要求有ruby环境,至少OS X 10.9以后是自带ruby环境的(Python也自带了),使用“ruby -v”命令可以查 看

2017-10-28 23:35:56 237

原创 UICollectionView详解和UITableView的区别

1. UICollectionView 和 UITableView 的UI区别UICollectionView默认没有表头,  UITableView: 有表头和表尾;UICollectionView的区里面是项Item, UITableView:区里面是单元格CellUICollectionView布局使用UICollectionViewLayOut的子类

2017-10-16 15:51:25 1987 1

原创 iOS11 Xcode 9 按住command 单击 恢复到从前(直接跳转到定义)

2017年9月20日,苹果如期推送 Xcode 9 和 iOS 11的更新.Xcode 9正式版与之前beta版本相差不大,编辑器有较大调整,试写代码,发现“跳转定义”跟以前不一样了,之前按住command +鼠标左键即可跳转定义.如今不一样了,如图:首先整块区域高亮,弹出菜单,Jump to Definition在菜单第一项,点击才会跳转,我想大部分人都不喜欢这种

2017-10-09 11:09:20 1109

原创 iOS: UITableViewCell点击效果下, 防止子控件背景颜色改变

UITableViewCell在选中状态下, 上面的子控件会被渲染, 而改变颜色如下图所示:系统效果橙色按钮被渲染, 颜色改变有时, 我们不想要子控件的颜色被渲染, 而是在整个点击过程中颜色都不变如下图所示:目标效果我们可以在自定义的cell中(继承自UITableViewCell)重写下面两个方法

2017-08-24 17:24:14 662

原创 IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget

[cpp] view plain copy@interface NSObject (NSDelayedPerforming)    - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay inModes:(NSArray

2017-07-26 11:33:06 406

转载 iOS自动布局框架-Masonry详解

目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的。而且有很多比较老的项目,本身就还在采用纯代码的方式进行开发。而现在iPhone和iPad屏幕尺寸越来越多,虽然开发者只需要根据屏幕点进行开发,而不需要基于像素点进行UI开发。但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,

2017-07-10 23:27:12 264

原创 iOS App 唤醒另一个App

主要内容URL Scheme 是什么?项目中关键的配置注意事项URL Scheme 是什么?iOS有个特性就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme用于从浏览器或其他应用中启动本应用。常见的分享到第三方之间的跳转都是基于Scheme的。通过对比网页链接来理解iOS 上的 URL Schemes,应该就容易多了。U

2017-07-10 19:29:16 1587

原创 oc中Class是个啥

先来看看熟悉的NSObject是个啥吧 @interface NSObject NSObject> { Class isa OBJC_ISA_AVAILABILITY; }Class是个啥typedef struct objc_class *Class;objc_class是什么呢struct objc_class { Class i

2017-07-08 17:04:30 3098

原创 oc的消息传递机制与消息转发机制

消息传递机制:在OC中,方法的调用不再理解为对象调用其方法,而是要理解成对象接收消息,消息的发送采用‘动态绑定’机制,具体会调用哪个方法直到运行时才能确定,确定后才会去执行绑定的代码。方法的调用实际就是告诉对象要干什么,给对象(的指针)传送一个消息,对象为接收者(receiver),调用的方法及其参数即消息(message),给一个对象传消息表达为:[receiver message]

2017-07-08 12:14:35 653

原创 iOS 点击事件传递及响应

前言:苹果的官方文档《Event Handling Guide for iOS》对事件处理做了非常详尽清晰的解释,建议大家仔细研读关于iOS的事件响应机制网上讲解文章不少,有的文章内容少没讲全面,有的说的太多,一个概念反复说,传递和响应混在一起讲,不好理解,我综合参考了几篇文章总结了一下,觉得可以分为以下几点来讲1. iOS中的事件介绍2. 事件的产生和传递3. 事件响应4. 实

2017-06-23 19:19:53 530

原创 KVO的实现原理与具体应用

本文分为2个部分:概念与应用。概念部分旨在剖析KVO这一设计模式的实现原理,应用部分通过创建的项目,以说明KVO技术在iOS开发中所带来的作用;如果是作为是刚接触KVO的初学者,可以在了解基本原理后粗略看几遍底层实现原理,再认真阅读第二部分的应用内容“学会”怎么去使用KVO,往后再慢慢深入了解KVO这一“黑魔法”技术的实现原理。【本次开发环境: Xcode:7.2     

2017-06-21 17:22:55 236

原创 对象间的通信之delegate、notificationCenter与block

在项目开发中,常常会涉及到对象之间的通信,而为了降低对象间的耦合,会采用delegate、notificationCenter、block三种方式来进行实现,对于他们的使用,也许大家都能熟练掌握,但是对于如何创建,初学者也许只是一知半解,本文不讲长篇大论,仅通过简单的实例来帮助大家学习三者的使用,希望对尚不了解以上三者的朋友能带来一定的帮助。一、delegate估计大家最常用的de

2017-06-21 14:33:44 241

原创 sql之left join、right join、inner join的区别

如图:left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID 

2017-06-16 17:11:45 361

原创 用SQL语句查询数据库中某一字段下相同值的记录方法

今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行筛选,经过研究问题终于得到解决。      以上问题实际上就是查询数据库表中某一字段值重复的记录,这里省略如何将Excel表导入到数据库步骤,只讨论用SQL查询数据库中某一字段下相同值的记录方法。

2017-05-04 11:09:08 11149 1

原创 【iOS】类簇(class cluster)

类簇实际上是Foundation framework框架下的一种设计模式,它管理了一组隐藏在公共接口下的私有类。类簇的基本概念和实现思路为了举例说明类簇的结构体系和好处,我们先想想如何构建一个类的结构体系,然后用这个类指定一个对象来存储不同数据类型的变量(如:char,int,float,double)?因为不同数据类型的变量在使用的时候可以互相转换类型或用字符串标识,所以我们

2017-04-27 16:51:38 452

原创 抽象工厂模式

什么是抽象工厂模式简单了解一下按照惯例,我们先了解一下什么是抽象工厂模式。抽象工厂模式和工厂方法模式很相似,但是抽象工厂模式将抽象发挥的更加极致,是三种工厂模式中最抽象的一种设计模式。抽象工厂模式,也叫做Kit模式,提供了创建一系列相关抽象子类的接口,而无需指定它们具体的类型。抽象工厂模式中定义了抽象工厂类,抽象工厂类中定义了每个系列的抽象子类创建所需的方法,这些方法对应着

2017-04-27 16:36:48 397

原创 工厂方法模式

什么是工厂方法模式?工厂方法模式和简单工厂模式十分类似,大致结构是基本类似的。不同在于工厂方法模式对工厂类进行了进一步的抽象,将之前的一个工厂类抽象成了抽象工厂和工厂子类,抽象工厂定义一个创建抽象子类的接口,抽象工厂的子类实现这些接口并决定实例化哪个抽象子类。工厂子类决定着创建哪个抽象子类,外界决定着创建哪种工厂子类,抽象子类和工厂子类是一一对应的。在工厂方法模式中,和简单工厂模式

2017-04-27 16:35:18 189

原创 iOS设计模式之简单工厂模式

一个简单计算器,用四则运算来考虑的话,加减乘除,那么初学者会觉得很简单,用if条件来进行判断,判断好了之后就可以完成要求,而稍微有经验点的 可能会选择switch case的判断方式,例如下面的代码:Operation运算方法的逻辑- (void)operationWithnumberA:(double )numberA Withoperator:(char)operator Withnu

2017-04-27 16:32:54 291

原创 ios 字典enumerateKeysAndObjectsUsingBlock遍历

enumerateKeysAndObjectsUsingBlock :使用代码块来迭代执行该集合中所有的key-value对[html] view plain copyNSDictionary *dict = @{@"a": @"1", @"b": @"2"};   [dict enumerateKeysAndObjectsUsingBl

2017-04-25 16:26:43 319

原创 iOS 开发--Objective-C 反射机制

了解反射机制Objective-C语言中的OC对象,都继承自NSObject类。这个类为我们提供了一些基础的方法和协议,我们可以直接调用从这个类继承过来方法。当然,本篇文章中讲到的反射方法,就在NSObject和Foundation框架中。反射机制涉及到的东西比较多,这篇文章只从OC层面来讲反射机制,不涉及runtime部分,以后会写文章来专门讲runtime的。获取Cla

2017-04-25 16:18:34 718

原创 iOS导航控制器——UINavigationController使用详解

一、概述UINavigationController用来管理视图控制器,在多视图控制器中常用。它以栈的形式管理视图控制器,管理视图控制器个数理论上不受限制(实际受内存限制),push和pop方法来弹入弹出控制器,最多只能显示一个视图控制器,那就是处于栈顶的视图控制器。一般情况下,UINavigationController最少管理一个控制器,即最少有一个根视图控制器或者叫做栈底视图

2017-04-21 17:12:34 957

原创 UITabBarController简单介绍

一、简单介绍UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。 二、UITabBarController的使用1.使用步骤:(1)初始化UITabBarController(2)设置UIWindo

2017-04-20 22:00:07 160

原创 上传本地项目到github

一、注册github账号首先需要注册一个github账号,注册地址:https://github.com接着会来到这然后会收到一封github发的邮件,进入邮箱验证二、创建个人的github仓库 验证成功是这样的,然后点击创建仓库也

2017-04-20 21:02:45 231

原创 iOS开发中添加PrefixHeader.pch要注意的问题

在Xcode6.0已经不默认生成PrefixHeader.pch文件了,而PrefixHeader.pch文件对我们开发带来的便利性是不言而喻的,所以我们怎么在工程中添加PrefixHeader.pch文件呢.    首先.我们创建一个PrefixHeader.pch      然后将这个prefix文件和这个工程关联,

2017-04-20 11:42:46 2833

原创 数据库操作(使用FMDB)

iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,就出现了一系列将SQLite API进行封装的库,例如FMDB、PlausibleDatabase、sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁、易用的封装库,这一篇文章简单介绍下FMDB的使用。在FMDB

2017-04-17 17:28:39 238

原创 @property与@synthesize

property属性: 提供成员变量的访问方法的声明、控制成员变量的访问权限、控制多线程时成员变量的访问环境。synthesize 合成访问器方法: 平时可以省略@synthesize,编译器会自动帮你加上get 和 set 方法的实现,以age为例:编译器默认会去访问_age这个成员变量,如果找不到_age这个成员变量,会自动生成一个叫做 _age的私有成员变量。在.m文件中同时实现ge

2017-04-17 16:03:06 227

原创 Error Domain=NSURLErrorDomain Code=-1022

导入一个SDK 里面网络返回error 报Code = -1022 ,后来发现为题所在 由于iOS9以后,需要App的网络协议里面都必须使用HTTPS协议!与原来的http不兼容 ,解决: 在工程的plist文件中,新增一个属性 1.字典 NSAppTransportSecurity 2.在NSAppTransportSecurity下添加NSAllowsArbitraryLoad

2017-04-17 16:02:28 836

原创 iOS沙盒机制原理

iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。1.1、每个应用程序都有自己的存储空间 1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。 通过这张图只能从表层上理解sandbo

2017-04-17 16:01:33 9337

原创 iOS sqlite3 的基本使用(增 删 改 查)

////  ViewController.m//  test_sqlite////  Created by 郑玉洋 on 2017/4/13.//  Copyright © 2017年郑玉洋. All rights reserved.//#import "ViewController.h"@interface ViewController ()

2017-04-17 15:59:30 1681

空空如也

空空如也

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

TA关注的人

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