07 2019 档案
摘要:UIView 有一个名叫 layer ,类型为 CALayer 的对象属性,它们的行为很相似,主要区别在于:CALayer 继承自 NSObject ,不能够响应事件。 这是因为 UIView 除了负责响应事件 ( 继承自 UIReponder ) 外,它还是一个对 CALayer 的底层封装。可以
阅读全文
摘要:最近看了一下关于图层和动画的内容,所以写了一份总结,算是对这些内容的汇总吧,都是一些简单的基础知识,不知道大家都了不了解。 除了和用户的交互之外,图层的很多属性和视图基本上都是一样的,今天就先从CALayer的一些基础的属性入手,没有套路和技巧,只是对属性的介绍: 一、contents conten
阅读全文
摘要:1.让图片旋转 UIImageView *imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(50, 50, 200, 200); imageView.image = [UIImage imageNamed:@"46
阅读全文
摘要:相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与position有什么关系? 每一个UIView都默认关联着一个CALayer, UIView有frame、boun
阅读全文
摘要:Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。 Core Animation可以用在Mac OS X和iOS平台。 Core Animation的动画执行过程都
阅读全文
摘要:使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 。 1:UIBezierPath: UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics框架关于p
阅读全文
摘要:0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文 1 CGContextMoveToPoint 开始画线 2 CGContextAddLineToPoint 画直线 4 CGContextAddEllipseInRect 画一
阅读全文
摘要:绘图的底层实现方法 注意:在drawRect方法中系统会默认创建一个上下文(C语言类型)在其他方法中不会有这样一个上下文(可以自己测试) @implementation DrawView //注意,在drawRect方法中系统会默认创建一个上下文(C语言类型) //在其他方法中不会有这样一个上下文(
阅读全文
摘要:1.画单条线 2.画多条线 3.画矩形 4.画弧线 5.画曲线 6.画文字 7.画图
阅读全文
摘要:自定义 View,实现以下方法即可 - (void)drawRect:(CGRect)rect { // Drawing code // 初始化UIBezierPath UIBezierPath *path = [UIBezierPath bezierPath]; // 首先设置一个起始点 ////
阅读全文
摘要:网络中Core Animation类的继承关系图 属性简介 @interface CAKeyframeAnimation : CAPropertyAnimation /* 提供关键帧数据的数组,数组中的每一个值都对应一个关键帧。根据动画类型(keyPath)的不同 , 值的类型不同*/ @prope
阅读全文
摘要:IOS 核心动画之CAKeyframeAnimation 简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation只能从 一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimati
阅读全文
摘要:作为一个iOS开发程序员,没用过block是不可能的。这次我探讨的是block原理,但是有些更深层次的东西,我也不是很清楚,以后随着更加了解block将会慢慢完善。 第一个问题,什么是block? 我们都会用block,但是block是什么呢,这是首先要弄清楚的概念。虽然,是什么并不影响我们用它,但
阅读全文
摘要:前言 在iOS开发中我们经常会用到模糊效果使我们的界面更加美观,而iOS本身也提供了几种达到模糊效果的API,如:Core Image,使用Accelerate.Framework中的vImage API,在iOS 7之前系统的类提供UIToolbar,在iOS 8之后苹果新增加的一个类UIVisu
阅读全文
摘要:- (void)viewDidLoad { [super viewDidLoad]; /* UIButton设置对应的边距image跟title的边距属性 titleEdgeInsets 内边距 contentEdgeInsets 外边距 */ // {top, left, bottom, righ
阅读全文
摘要:关于ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,比如我从主页面跳转到了一级页面,又从一级页面跳转到了二级页面,然后从二级页面跳转到了三级页面,依次类推。如果一级一级的返回我知道是没有问题
阅读全文
摘要:苹果手机可以作为蓝牙外设端,被蓝牙中央端来扫描连接交互数据,实现模拟蓝牙外设硬件。通过阅读CoreBluetooth库,可以找到一个CBPeripheralManager的类,该类主要的作用就是允许你来管理发布services,把这些services广告给其他的设备。如果想详细了解该类的属性和方法,建议去看看CoreBluetooth/CBPeripheralManager.h。 下面来模拟一个...
阅读全文
摘要:一、外设 1.在外设的.h文件中定义如下 1 //周边管理者 2 3 @property (nonatomic , strong) CBPeripheralManager *peripheralManager; 4 5 // 中心 6 7 @property (nonatomic,strong) C
阅读全文
摘要:1.去掉字符串两端的空格及回车 - (NSString *)removeSpaceAndNewline:(NSString *)str{ NSString *temp = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceC
阅读全文
摘要:在数据网路请求或其他情况下,需要将字符串转换成UTF-8编码 ios9后对其方法进行了修改 NSString *str = @"北京"; 把这个转成UTF8以前我们使用的是 NSString *str3 = [str stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 但是在ios9这个方法废弃了 用如...
阅读全文
摘要:本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲解+总结的文章了。通过本文,您将了解到: 1. GCD 简介 2. GCD 任务和队列 3. GCD 的使用步骤 4. GCD 的基本使用(6种不同组合区别) 5. GCD 线程间的通信
阅读全文
摘要:网络数据解析框架 1. JsonModel 一个 JSON 模型转换库,有着比较简洁的接口。Model 需要继承自 JSONModel。2. yyModel yyModel比较轻量(算上.h 只有 5 个文件),支持自动的 JSON/Model 转换,支持定义映射过程。API 简洁,功能也比较简单。
阅读全文
摘要:1、添加视图 insertSubview:atIndex: //放在子视图数组的具体索引位置 insertSubview:aboveSubview: //某个子视图前面 insertSubview:aboveSubview: //某个子视图前面2、重新排序和删除子视图 [parentView exc
阅读全文
摘要:普通的通知使用 注册观察者 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNotificationAction) name:@"ThisIsANoticafication" object:ni
阅读全文
摘要:在编码过程中,我们通常碰到一组数据,需要自己简单的处理下,拿到数组中的总和,大小和平均值数据。 1.简单粗暴的方法,快速求和。 NSArray * array = @[@"35",@"786",@"111",@"73",@"80",@"58",@"34",@"3"]; float sum = [[a
阅读全文
摘要:为了简化开发流程,提升工作效率,收集了一些平时常用的宏定义,今后会不定期更新 1.UI元素 //NavBar高度 #define NAVIGATIONBAR_HEIGHT 44 //StatusBar高度 #define STATUSBAR_HEIGHT 20 //获取屏幕 宽度、高度 #defin
阅读全文
摘要:iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性;将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便。 做了一些分类和注释,可以根据自己习惯再添加或者删除或者修改这些宏进行使用。 #ifndef MacroDefinition_h #define MacroDefinition...
阅读全文
摘要:#pragma mark - 字体、颜色相关 #define kFONT_SIZE(f) [UIFont systemFontOfSize:(f)] #define kFONT_BOLD_SIZE(f) [UIFont boldSystemFontOfSize:(f)] #define kFONT_
阅读全文
摘要:iOS开发过程中,使用的一些常用宏定义 字符串是否为空 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO ) 数组是否为空 #def
阅读全文
摘要:宏定义与常量的区别 宏:只是在预处理器里进行文本替换,不做任何类型检查,宏能定义代码,const不能,多个宏编译时间相对较长,影响开发效率,调试过慢,const只会编译一次,缩短编译时间。 所以在使用的时候,最好把代码和一些基本数据类型如int抽成宏。 而对于常量字符串使用const,苹果也是这样使
阅读全文
摘要:/* 1. 颜色 */ #define PCBRGBColorA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)/255.0]//RGBA #define PCBRGBColor
阅读全文
摘要://字符串是否为空 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO ) //数组是否为空 #define kArrayIsEmpt
阅读全文
摘要:Xcode8 1 创建coreData的ManagedObject后,报错 使用Xcode 8.1 创建coreData的ManagedObject后,报错。 duplicate symbol OBJC_CLASS$_ClassName in: .../ClassName+CoreDataClass
阅读全文
摘要:/** 日期:2015-10-15 版本: 1.0.0 -------------------------------------------------------------- 功能说明 -------------------------------------------------------------- ...
阅读全文
摘要:如何判断一个点是不是在方框(CGRect)、圆(Circle)、三角形(Triangle)内呢? 1.方框 //苹果官方方法可以判断 + (BOOL)point:(CGPoint)point inSquareArea:(CGRect)rect { return CGRectContainsPoint
阅读全文
摘要:前言 这边文章主要 是写 一、半圆弧型滑块的设计 最近项目中需要用到半圆弧形滑块,其作用和UISlider差不多,用于拖动改变播放音乐的播放进度。 大概样子是这样的: 效果展示 特点如下: 滑动响应区域为弧环上,并且靠近滑动块,,并限制了中心区域不可滑动; 当值为0时不可再逆时针滑动,当值为最大值时
阅读全文
摘要:由于项目需要一个环形渐变进度条显示课程,这方便网上的确有很多相关资料但是,都是比较零散的而且,大多数只是放一堆代码就算完了。这里我想详细写一篇我自己实现这个进度条的过程。 实现一个圆弧进度条主要分为三步 一、画圆弧这里用的贝赛尔曲线,就是这个东西:UIBezierPath 二、根据贝塞尔曲线路径画两
阅读全文
摘要:FSScrollContentView github:https://github.com/shunFSKi/FSScrollContentView 这是本人在整理项目时抽离了业务代码整理封装的一个通俗易懂较为实用的框架。 支持点击上方标题,切换下方内容页面,也支持滑动下方内容区域,切换上方的标题。
阅读全文
摘要:用Xcode8.1默认创建ios app的时候,使用coreData的话,要10.0以上的版本才行。因为NSPersistentContainer只有10.0以上的版本才有,10.0以下的版本是没有的,那怎么办呢? 有办法,专为8.0版本加写的INSPersistentContainer来了,大赞。
阅读全文