用UIBezierPath数组对UIView进行镂空处理 效果 源码 // // CutOutClearView.h // CutOutMaskView // // Created by YouXianMing on 16/7/8. // Copyright © 2016年 YouXianMing. All rights reserved. // #import <UIKit/UIKit.h> @interface CutOutClearView : UIView @property (non…
方法一 #import "DrawView.h" @implementation DrawView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { //设置 背景为clear self.backgroundColor = [UIColor clearColor]; self.opaque = NO; } return self; } - (void…
1,准备工作,既然要开关灯,就需要确定灯的灯的颜色状态 首先想到的是扩展UIColor…
动画预览 先扯淡 最近手痒又想整点动画玩玩,但是想了几个主意发现稍微复杂一点的手写都一定会累爆.这篇文章记录一下今天折腾的一个方案.说来简单,就是用矢量设计工具舒舒服服的做好设计,然后输出成 svg 格式,再用 NSXMLParser 去读出来,转换成 UIBezierPath ,然后就天高任鸟飞- 清晰起见,这里不使用各种库,由上面的二维码动画为例,只转换最简单的矩形.需要更多高能操作的,出门右转 SVGKit 开工 筹备材料先,首先找个能提供 svg 格式下载的二维码生成网站,比如 这个 .…
目录: 1. Storyboard 2. Views 3. View的基本概念介绍 4. 绘制图形 5. UIBezierPath 回到顶部 1. Storyboard 1.1 静态表视图 1)Section可以增加.删除.修改头脚文字 2)Cell可以增加.删除.调整类型.修改文字.修改辅助视图类型 3)  自定义accessoryView: 将需要做辅助视图的控件拖拽到VC下的小黑条 选择Cell,第6个检查器,连线accessoryView到小黑条上的控件 4)自定义Cell 拖拽一个Ce…
在iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要.在iOS学习——iOS 整体框架及类继承框架图中列出了iOS中所有类的继承框架图,其中下面这张图就是iOS开发中的界面相关类的继承框架图. 下面主要通过学习UIView.h文件来了解UIView主要提供了那些方法和属性,从UIView.h的源码来看,UIView.h的结构主要分为4个部分: 常用枚举类型的…
首先,介绍一下UIView相关的动画. UIView普通动画: [UIView beginAnimations: context:]; [UIView commitAnimations]; 动画属性设置: //动画持续时间 [UIView setAnimationDuration:(NSTimeInterval)]; //动画的代理对象 [UIView setAnimationDelegate:(nullable id)]; //设置动画将开始时代理对象执行的SEL [UIView setAni…
上图是几种时间复杂度的关系,性能优化一定程度上是为了降低程序执行效率减低时间复杂度. 如下是几种时间复杂度的实例: O(1) return array[index] == value; 复制代码 O(n) for (int i = 0, i < n, i++) { if (array[i] == value) return YES; } 复制代码 O(n2) /// 找数组中重复的值 for (int i = 0, i < n, i++) { for (int j = 0, j < n,…
当需要画图时我们一般创建一个UIView子类, 重写其中的drawRect方法 再drawRect方法中利用UIBezierPath添加画图 UIBezierPath的使用方法: (1)创建一个Bezier path对象. (2)使用方法moveToPoint:去设置初始线段的起点. (3)添加line或者curve去定义一个或者多个subpaths. (4)改变UIBezierPath对象跟绘图相关的属性. 我们可以设置stroked path的属性lineWidth和lineJoinStyl…
示例代码 //#import <UIKit/UIKit.h>@interface UIView (LPCView)/** 上 */@property CGFloat top;/** 下 */@property CGFloat bottom;/** 左 */@property CGFloat left;/** 右 */@property CGFloat right;/** 中心x */@property CGFloat centerX;/** 中心y */@property CGFloat ce…
使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics框架关于path的一个OC封装.使用此类可以定义常见的圆形.多边形等形状 .我们使用直线.弧(arc)来创建复杂的曲线形状.每一个直线段或者曲线段的结束的地方是下一个的开始的地方.每一个连接的直线或者曲线段的集…
使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状.      1.Bezier Path 基础    UIBezierPath对象是CGPathRef数据类型的封装.path如果是基于矢量形状的,都用直线和曲线段去创建.我们使用直线段去创建矩形和多边形,使用曲线段去创建弧(arc),圆或者其他复杂的曲线形状.每一段都包括一个或者多个点…
1. UIView 的初认识 官方文档 UIView class defines a rectangular area on the screen and the interfaces for managing the content in that area.At runtime, a view object handles the rendering of any content in its area and also handles any interactions with that …
使用UIBezierPath可以创建基于矢量的路径.使用此类可以定义简单的形状,如椭圆.矩形或者有多个直线和曲线段组成的形状等.主要用到的该类的属性包括 moveToPoint: //设置起始点 addLineToPoint: //从上一点连接一条线到本次指定的点 closePath() //闭合路径,把起始点和终点连接起来 appendPath: //多条路径合并 removeAllPoints() //删除所有点和线 lineWidth //路径宽度 lineCapStyle //端点样式(…
绘制一个UIVIew最灵活的方式就是由它自己完成绘制.实际上你不是绘制一个UIView,你只是子类化了UIView并赋予子类绘制自己的能力.当一个UIVIew需要执行绘图操作的时,drawRect:方法就会被调用.覆盖此方法让你获得绘图操作的机会.当drawRect:方法被调用,当前图形上下文也被设置为属于视图的图形上下文.你可以使用Core Graphics或UIKit提供的方法将图形画到该上下文中. 你不应该手动调用drawRect:方法!如果你想调用drawRect:方法更新视图,只需发送…
Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 1.常见方法: + (void)setAnimationDelegate:(id)delegate——设置动画代理对象: + (void)setAnimationWillStartSelector:(S…
如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架).而若要指定某几个角(小于4)为圆角而别的不变时,这种方法就不好用了. 对于这种情况,Stackoverflow上提供了几种解决方案.其中最简单优雅的方案,就是使用UIBezierPath.下面给出一段示例代码. UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 8…
MVC架构模式   MVC(Model-View-Controller)是实现数据和显示数据的视图分离的架构模式(有一定规模的应用都应该实现数据和显示的分离).其中,M代表模型,就是程序中使用的数据和状态,它不理会用户界面或表现方式,只负责数据和状态的存储:V代表视图,是呈现给用户看的东西,当然用户也可以通过视图来表达想要进行的操作:C代表控制器,它负责协调模型和视图,当模型更改时要刷新视图,这通常会包含一些逻辑. UIView的常用属性和方法   之前我们说过,UIView可以代表屏幕上的一块…
注:本人是翻译过来,并且加上本人的一点见解. 前言 本文将讨论一些自定义视图.控件的诀窍和技巧.我们先概述一下 UIKit 向我们提供的控件,并介绍一些渲染技巧.随后我们会深入到视图和其所有者之间的通信策略,并简略探讨辅助功能,本地化和测试. 目录 1.视图层次概览2. 渲染3. 自定义绘制4. 自定义交互5. 使用 Target-Action6. 使用代理7. 使用 Block8. 使用 KVO9. 使用通知10. 辅助功能 (Accessibility)11. 本地化12. 测试 1.视图层…
UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道,单例在应用程序的整个生命周期中只有一个对象). App的启动过程 打开程序之后-> 1:Main函数 2:UIapplicationMain函数 3:初始化UIApplication(创建) 4:设置UIApplication代理和相应的代理属性 5:开启事件循环,监听系统事件 6监测info.p…
学习Swift有一个月了,动手写一个UIView吧. 所有源代码在最后,直接用就可以了,第一次写Swift,和C#,Java还是有区别的 (博客园可以考虑在代码插入中添加Swift的着色了) 1  函数准备.Swift的日历函数,随着版本的变化,变动很大. //MARK: - Calendar //按照苹果的习惯,周日放在第一位 let weekdayForDisplay = ["周日","周一","周二","周三",&quo…
UIView设置圆角 1.比较简单的情况,UIView四个角都是圆角: UIView *aView = [[UIView alloc] init]; aView.frame = CGRectMake(, , , ); aView.backgroundColor = [UIColor redColor]; //设置圆角边框 aView.layer.cornerRadius = ; aView.layer.masksToBounds = YES; //设置边框及边框颜色 aView.layer.bo…
一:首先查看一下关于UIView的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem, UITraitEnvironment, UICoordinateSpace> + (Class)layerClass; // 默认为 [CALayer class].用于创建视图的底层时使用. - (instan…
使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics框架关于path的一个OC封装.使用此类可以定义常见的圆形.多边形等形状 .我们使用直线.弧(arc)来创建复杂的曲线形状.每一个直线段或者曲线段的结束的地方是下一个的开始的地方.每一个连接的直线或者曲线段的集…
最近在网上看到一个很酷的下拉刷新效果(http://iostuts.io/2015/10/17/elastic-bounce-using-uibezierpath-and-pan-gesture/).自己试着实现了一下其中的果冻回弹效果. 效果 DEMO 由于文笔不太好-.- ,建议先下载demo,再结合下面的分析,会好理解点.地址https://github.com/Resory/RYCuteView 逻辑 下图p1,蓝色部分图形是一个CAShapeLayer,他的形状由UIBezierPat…
使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状.      1.Bezier Path 基础    UIBezierPath对象是CGPathRef数据类型的封装.path如果是基于矢量形状的,都用直线和曲线段去创建.我们使用直线段去创建矩形和多边形,使用曲线段去创建弧(arc),圆或者其他复杂的曲线形状.每一段都包括一个或者多个点…
前言 笔者在写本篇文章之前,也没有系统学习过贝塞尔曲线,只是曾经某一次的需求需要使用到,才临时百度看了一看而且使用最基本的功能.现在总算有时间停下来好好研究研究这个神奇而伟大的贝塞尔先生! 笔者在学习时,首先看了两遍UIBezierPath类头文件定义,熟悉了一下相关的属性和方法. 基础知识 使用UIBezierPath可以创建基于矢量的路径,此类是Core Graphics框架关于路径的封装.使用此类可以定义简单的形状,如椭圆.矩形或者有多个直线和曲线段组成的形状等. UIBezierPath…
//fatherView加虚线边框 -(void)boundingRectangleForView:(UIView *)fatherView{ CAShapeLayer *borderLayer = [CAShapeLayer layer]; borderLayer.fillColor = [UIColor clearColor].CGColor; borderLayer.strokeColor = [UIColor nvColorWith666].CGColor; borderLayer.pa…
最近项目中需要用到用贝塞尔曲线去绘制路径 ,然后往路径里面填充图片,找到这篇文章挺好,记录下来 自己学习! 转至 http://blog.csdn.net/guo_hongjun1611/article/details/7839371 使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状.      1.Bezier Path 基础   …
UIBezierPath类可以创建基于矢量的路径,可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状. 一.UIBezierPath使用: 1.创建path: 2.添加路径到path: 3.将path绘制出来: //创建path path = [UIBezierPath bezierPath]; //添加路径 [path moveToPoint:(CGPoint){,}]; [path addLineToPoint:(CGPoint){,}]; //将path绘制出来 [pat…