自定义博客皮肤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)
  • 收藏
  • 关注

原创 h5中的图片点击放大

在wkwebview的代理方法//MARK: -- 加载完成- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation 中加入js代码//js方法遍历图片添加点击事件 返回图片个数     逻辑:     1.遍历获取全部的图片;(只获取detail-main div

2018-01-17 10:24:32 17000

转载 CoreData(六)模型版本和数据迁移

前面几篇文章中讲的所有内容,都是在同一个模型版本上进行操作的。但在真实开发中,基本上不会一直停留在一个版本上,因为需求是不断变化的,说不定什么时候就需要往模型里添加新的字段,添加新的模型,甚至是大规模的重构;所以数据的迁移就显得尤为重要了。CoreData 中,数据迁移本质就是把旧的 SQLite 数据库里的内容,复制到新的 SQLite 数据库里去,让新的数据库作为默认的数据存储。伴随着模型

2017-12-28 10:48:07 366

转载 CoreData(五)CoreData 和 TableView 结合

我们知道 CoreData 里存储的是具有相同结构的一系列数据的集合,TableView 正好是用列表来展示一系列具有相同结构的数据集合的。所以,要是 CoreData 和 TableView 能结合起来,CoreData 查询出来的数据能同步地显示在 TableView 上,更好一点就是 CoreData 里的改动也能同步到 TableView 上,那就再好不过了。可喜的是,确实有这样一个 AP

2017-12-28 10:43:48 310

转载 CoreData(四)并发操作

通常情况下,CoreData 的增删改查操作都在主线程上执行,那么对数据库的操作就会影响到 UI 操作,这在操作的数据量比较小的时候,执行的速度很快,我们也不会察觉到对 UI 的影响,但是当数据量特别大的时候,再把 CoreData 的操作放到主线程中就会影响到 UI 的流畅性。自然而然地我们就会想到使用后台线程来处理大量的数据操作。使用后台 managedObjectContextCoreD

2017-12-28 10:41:37 324

转载 CoreData(三)关联表的创建

上篇博客中讲了 CoreData 里增删改查的使用,学到这里已经可以应对简单的数据存储需求了。但是当数据模型复杂起来时,例如你的模型类中除了要存储 CoreData 里支持的数据类型外,还有一些自定义的数据类型,这个时候只靠单一的模型结构就没办法来满足这种需求了,于是我们就需要使用关联表结构,也就是我们这次要讲的内容。简介多表关联,相信接触过 SQL 数据库的朋友都不陌生,就是指可以在一张表的

2017-12-28 10:29:05 334

转载 CoreData(二) 数据的增删改查

在上篇博客中,讲了数据模型和 CoreData 栈的创建,那下一步就是对数据的操作了。和数据库一样,CoreData 里的操作也无非是增删改查。下面我们将逐步讲解在 CoreData 中进行增删改查的方式。基本的增删改查插入条目先来看一下插入条目的方式,在插入之前,我们需要先创建要插入的数据, 使用 NSEntityDesctiption 类的 + (__kindof NSManagedOb

2017-12-28 10:19:17 359

转载 CoreData(一)数据模型 + CoreData 栈的创建

CoreData 是 Cocoa 平台上用来管理模型层数据和数据持久化的一个框架,说简单点,就是一个数据库存储框架。CoreData 里相关的概念比较多,而且初始化也非常繁琐,所以对初学者的学习还是有一些困难的。这篇文章将从头到尾详细地讲一遍 CoreData 的使用方法,从 CoreData 的初始化到简单的增删改查,再到批量处理,数据模型的版本更新以及和 TableView 的结合等,真正让你

2017-12-28 10:02:47 225

原创 iOS 可以看见下一页的部分内容的ScrollView

需要使scrollView的宽度小于实际显示宽度        _dataScrollView.pagingEnabled =YES;//分页滑动宽度 系统默认为 UIScrollView 的 width        _dataScrollView.delegate =self;        _dataScrollView.showsHorizontalSc

2017-12-26 10:30:07 688

原创 iOS 高德地图路线规划

最近做了高德地图路线规划,把自己不熟的点记录一下:1、地图不显示当前位置精准圈:设置mapview的 customizeUserLocationAccuracyCircleRepresentation 属性为yes,就会调用mapview的代理方法- (MAOverlayRenderer *)mapView:(MAMapView *)mapView rendererForOverl

2017-12-26 10:21:20 1457

转载 瓦片地图在iOS项目中的应用

瓦片地图简单点来讲,我们可以把一张地图看成有很多张正方形图片组成的,就像瓦片一样排放,但是这个排放是有一定的规律的.当然地图的缩放等级决定了图片的数量.举个

2017-12-19 09:47:15 2163

原创 iOS 多线程

为什么使用多线程:网络请求 :异步请求,不占主线程图片加载文件处理数据存储任务执行多线程原理:单核操作系统:操作系统会为每个线程分配时间段,交替进行 宏观并行,微观串行多核:并行优缺点:优:1、简化编程模型(设计复杂的系统设计中,单一线程处理大的,零散的任务困难,多线程就可以简化编程模型) 2、更加轻量级 3、提高执行效率4、提高资源利用率缺:1、增加程序的设计复杂度(资源共享、线程读写数据库操作...

2017-12-07 10:47:44 147

原创 Instruments 调试工具的使用

Instrumets 做程序性能调试 http://www.samirchen.com/use-instruments/其中文章中的一些按钮位置在Xcode9.1中有所改变,如下图

2017-12-06 10:15:41 310

转载 iOS dispatch_source_t

Dispatch Source是GCD中的一个基本类型,从字面意思可称为调度源,它的作用是当有一些特定的较底层的系统事件发生时,调度源会捕捉到这些事件,然后可以做其他的逻辑处理,调度源有多种类型,分别监听对应类型的系统事件。我们来看看它都有哪些类型:Timer Dispatch Source:定时调度源。Signal Dispatch Source:监听UNIX信号调度源,比如监听代表挂起

2017-12-04 17:04:10 604

原创 iOS 定时器

1、NSTimer使用注意1)与RunLoop的关系 2)释放不掉的问题http://blog.csdn.net/Christ_Beings/article/details/53425665https://www.mgenware.com/blog/?p=459 ***http://www.cocoachina.com/ios/20150710/12444.html

2017-12-04 16:25:06 261

原创 iOS 关于信号量的文章

iOS 信号量http://www.itwendao.com/article/detail/393099.htmlhttp://www.cnblogs.com/yajunLi/p/6274282.htmliOS之利用GCD信号量控制并发网络请求:http://blog.csdn.net/Cloudox_/article/details/71107179

2017-12-01 17:39:55 204

原创 iOS 获取view上某一点的色值

////  UIView+ColorView.m//  CAEmitterCell////  Created by Holly on 2017/11/30.//  Copyright © 2017年 Holly. All rights reserved.//#import "UIView+ColorView.h"#import @implemen

2017-12-01 17:32:27 973

原创 iOS 线程锁

一、使用关键字1)@synchronized (互斥锁)优点:使用@synchronized关键字可以很方便地创建锁对象,而且不用显式的创建锁对象。缺点:会隐式添加一个异常处理来保护代码,该异常处理会在异常抛出的时候自动释放互斥锁。而这种隐式的异常处理会带来系统的额外开销,为优化资源,你可以使用锁对象。二、“Object-C”语言      1)NSLock(互斥锁)2)N

2017-12-01 17:24:52 158

转载 IOS 截图

-(void)fullScreenshots{UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];    UIGraphicsBeginImageContext(screenWindow.frame.size);//全屏截图,包括window    [screenWindow.laye

2017-11-30 16:29:49 150

转载 iOS 粒子效果

一、在 UIKit 中,粒子系统由两部分组成:1·      一个或多个  CAEmitterCells :发射器电池可以看作是单个粒子的原型(例如,一个单一的粉扑在一团烟雾)。当散发出一个粒子,UIKit根据这个发射粒子和定义的基础上创建一个随机粒子。此原型包括一些属性来控制粒子的图片,颜色,方向,运动,缩放比例和生命周期。 2·      一个或多个  CAEmitterLay

2017-11-30 10:41:58 1381

原创 CADisplayLink 的使用

CADisplayLink是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器。我们在应用中创建一个新的 CADisplayLink对象,把它添加到一个runloop中,并给它提供一个 target和selector 在屏幕刷新的时候调用。CADisplayLink和其它CoreAnimation类一样,都是在QuartzCore.framework里。使用方式-

2017-11-29 15:00:16 3546

原创 jenkins 自动化打包

cd /Applications/Jenkins    要安装java环境java -jar jenkins.war --httpPort=8888http://localhost:88881、在终端输入命令行  brew install jenkins  (基于brew安装,安装不成功自行百度,因jenkins基于Java,所以要先集成Java开发环境

2017-11-28 16:07:48 328

原创 ios 绘制虚线 CGContextSetLineDash函数的参数

画虚线需要用到的函数:CG_EXTERN void CGContextSetLineDash(CGContextRef cg_nullable c, CGFloat phase,const CGFloat * __nullable lengths, size_t count)CGContextRef currentContext = UIGraphicsGetCurrentContext(

2017-11-28 15:39:27 1149

原创 使用cocoapods 集成react-native 笔记

1.xcode 新建一个工程 myTestApp2. 进入工程目录下  新建package.json文件  可以使用sublimb新建内容为:{"name": "myTestApp",//工程名"version": "0.0.1","private": true,"scripts": {"start": "node node_modules/

2017-11-28 15:36:23 924

原创 iOS 动画

iOS 动画分为两种,一种是UIView的视图动画,一种是Layer的动画,本质上UIView的动画也是基于Layer的一、UIView动画(UIView的动画又分为一般的方式和block的方式)1、一般方式[UIView beginAnimations:@“kk” context:nil];//设置动画 kk为动画名称[UIView setAnimationDur

2017-11-27 17:45:59 120

原创 iOS 获取设备的IDFA

在项目的General 里加入支持的framework,AdSupport.framework 再在需要获取idfa的地方写下述代码就可以获取 NSString*idfaStr = [[[ASIdentifierManagersharedManager] advertisingIdentifier]UUIDString];

2017-09-30 10:23:11 3440

原创 控件相对屏幕的坐标位置

//    需要获取的对象为view,则该视图相对屏幕的位置可使用下面方法实现:    UIWindow * window=[[[UIApplicationsharedApplication] delegate] window];    CGRect rect=[view convertRect: view.bounds toView:window];//    需

2017-09-19 16:25:49 2582

原创 iOS 成员变量与属性的区别

#import @interface Person : NSObject{    // 1.声明成员变量    NSString *name;    NSInteger age;    }//@property声明属性@property (nonatomic,copy) NSString *fatherName

2017-09-15 11:14:01 550

转载 runtime

为深入学习runtime的原理及使用,找到几篇个人认为写的比较好的文章进行转载分享:runtime 的原理及使用简介:因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system)来执行编译后的代码。这就是 Objective-C Runtime 系

2017-09-14 17:17:00 264

原创 CGFloat和float的区别,什么时候用哪一种以及浮点数比较大小

1、CGFloat和float的区别,什么时候用哪一种CGFloat is just a typedef for either float or double.The basic type for all floating-point values. typedef float CGFloat;// 32-bit  typedef double 

2017-09-06 17:33:09 6109

原创 工资计算 字典形式传参以及返回 结果

以字典的形式传参以及返回参数:(只计算了个人部分)参数model@interface CCCalculatorParamModel :NSObjectYYModel>@property (nonatomic,assign) CGFloat providentFund;//公积金@property (nonatomic,assign) CGFl

2017-09-06 17:00:05 409

原创 iOS 税前税后的工资计算

税前税后的工资计算公式如下:计算个税 =ROUND(MAX((计税工资-3500)*{3;10;20;25;30;35;45}%-5*{0;21;111;201;551;1101;2701},0),2)倒推税前=ROUND(MAX((实发-3500-{0,105,555,1005,2755,5505,13505})/(1-{3,10,20,25,30,35,45}%)+

2017-09-06 16:28:04 992

原创 iOS 中间按钮突出的tabbar

由于项目需求,需要写一个下图的tabbar中间按钮突出使用贝塞尔曲线来画一个tabbar的背景图,自定义一个view 重写view的drawRect方法,代码如下:-(void)drawRect:(CGRect)rect{    CGFloat lineY =0;    CGFloat radiu =0;    CGFloat lineWidth

2017-08-29 10:17:56 3045

原创 iOS 手机照片上传服务器方向不对的原因以及解决方法

苹果手机上传图片到服务器,发现图片方向不对,百度原因发现:1:原因:  相机拍照后直接取出来的UIimage(用UIImagePickerControllerOriginalImage取出),它本身的imageOrientation属性是3,即UIImageOrientationRight。如果这个图片直接使用则没事,但是如果对它进行裁剪、缩放等操作后,它的这个imageOrientation

2017-08-25 17:09:01 4271

转载 iOS 内存知识以及修饰词的用法 copy修饰符

内存被分成了5个区,每个区存储的内容如下:栈区(stack):存放函数的参数值、局部变量的值等,由编译器自动分配释放,通常在函数执行结束后就释放了,其操作方式类似数据结构中的栈。栈内存分配运算内置于处理器的指令集,效率很高,但是分配的内存容量有限,比如iOS中栈区的大小是2M。堆区(heap):就是通过new、malloc、realloc分配的内存块,它们的释放编译器不去管,由我们

2017-08-25 09:40:30 394

空空如也

空空如也

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

TA关注的人

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