大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

iOS-模仿苹果时钟选择控件

_alramLayer) { _alramLayer = [[CAShapeLayer alloc] init]; } #pragma mark - Method - Method - -(void)beiginRotationWithAngle:(CGFloat)angle beiginPiont:(CGPoint)point{ switch (self.rotationType) { case kRotationType_StartAngle: [self changeStartAngle:angle]; } /** 绘制BezierPath */ -(UIBezierPath *)drawAlarmPathWithStartAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle{ CGRect circleRect = CGRectMake(kAlarmViewRadius,kAlarmViewRadius, self.bounds.size.width, self.bounds.size.height);

iOS关于CAReplicatorLayer(多图层复制)动画

iOS关于CAReplicatorLayer(多图层复制)动画 分别写了关于指示器动画,圆形加载动画。效果如图: [图片上传中.. } - (CABasicAnimation *)alphaAnimation{ //设置透明度动画 CABasicAnimation *alpha = [CABasicAnimation animationWithKeyPath:@"opacity"]; alpha.fromValue = @1.0; alpha.toValue = @0.01; } - (CABasicAnimation *)activityScaleAnimation{ //设置缩放动画 CABasicAnimation *scale = [CABasicAnimation animationWithKeyPath:@"transform.scale"];

UIBezierPath制作水波浪加载动画(仿百度贴吧)

} 然后利用UIBezierPath绘制一条正弦曲线path: 设置正弦曲线参数属性: //波浪相关的参数 @property(nonatomic,assign)CGFloat waveWidth;。这样正弦曲线就左右移动起来了。 最后去设置waveLayer的位置,并将创建好的waveLayer设置为需要进行裁剪的波浪图(即waveImageView)的layer.mask了。 将waveLayer的位置设置在波浪图的中部: self.waveLayer.frame = CGRectMake(0, K_HEIGHT/2, K_WIDTH, K_HEIGHT);

UIBezierPath绘制柱状图、折线图和饼状图

layer.strokeEnd = strokeEnd;中参数如下:center是弧线中心点的坐标; radius是弧线所在圆的半径; startAngle是弧线开始的角度值; endAngle是弧线结束的角度值; clockwise表示是否顺时针画弧线。 用UIBezierPath绘制各个扇形的路径,和背景圆路径一样: //绘制各个扇形的路径 UIBezierPath * subPath = [UIBezierPath bezierPathWithArcCenter:centerPoint radius:radius startAngle:-M_PI_2 endAngle:M_PI_2*3 clockwise:YES];

iOS:高仿微信文章悬浮球

delegate = self func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) - Bool { return true } 然后自己添加一个UIScreenEdgePanGestureRecognizer到UINavigationController上面,用于获取pop手势的进度。 let gesture = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(handleNavigationTransition(gesture:))) gesture.edges = .) - Bool { return bgLayer.path!

用20行代码用动画实现一个旋转一圈的圆形

用20行代码用动画实现一个旋转一圈的圆形 先来一张实际效果的预览 2018-05-28 16_52_51.gif 实现这个效果只需要20多行代码哦 废话不多说,首先要画一个 layer CAShapeLayer *processLayer = [CAShapeLayer layer]; CGFloat angle = 1.0/(CGFloat)(accuracy)*360.0; ++pos) { UIBezierPath *toPath = [UIBezierPath bezierPath]; } 最后就是把动画应用到processLayer上了 CAKeyframeAnimation *animate = [CAKeyframeAnimation animationWithKeyPath:@"path"];

见缝插针游戏的实现

见缝插针游戏的实现 游戏的背景: 前言:这个游戏是2015年出来的,刚开始当时aa(见缝插针)游戏很火,我也是玩了好大半天,深深地求虐感屡试不爽。那个时候我还是一个iOS小兵一枚,当时就感觉这游戏如此简单到炸裂,于是就想着尝试实现它,但是. CGFloat m21, m22, m23, m24;

iOS开发:关于扇形Button设置问题

iOS开发:关于扇形Button设置问题 最近做新项目遇到一个问题,关于扇形按钮的问题。我们都知道button苹果只提供矩形的,圆的也是圆角度切出来的。确实很少见到扇形的button。首先申明,此方法不是我原创,只是我找到稍微修改了一下。原文地址使用CAShapeLayer和UIBezierPath画一个自定义半圆弧button-布布扣-bubuko.com (尊重原创)。 首先说一下思路,创建一个类,继承于UIControl

利用CAShapeLayer、CAGradientLayer实现弧形曲线渐变色进度条

gif 方法 创建了两个CAShapeLayer topLayer和bottomLayer bottomLayer来绘制下面灰色弧形的完整部分(表示容量) topLayer用来显示上层的渐变色弧形进度条(表示完成度) /** 设置top弧形曲线渐变层 */ - (void)gradient { self.topLayer = [CAShapeLayer layer]; // [gradient setLocations:@[@0, @0.5, @1]]; } 设置渐进动画 - (void)setCurrentProgress:(CGFloat)progress { CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];

SDDrawView:画板组件,这里的箭头很有特点!

SDDrawView:画板组件,这里的箭头很有特点! SDDrawView简介 SDDrawView 是一款基于贝塞尔曲线的画板组件,目前样式包含线条、矩形、圆形、箭头等样式.我们初始化一个SDDrawView对象然后添加到对应的View视图上即可. //懒加载的形式初始化(可用可不用~) - (SDDrawView *)drawView{ if(_drawView == nil){ _drawView = [[SDDrawView alloc] initWithFrame:[UIScreen mainScreen]. @property(nonatomic,strong) UIColor *lineColor;

iOS-UIImageView圆角设置

iOS-UIImageView圆角设置 iOS开发中图片圆角设置是最常见的需求,圆角符合人类视觉安全体验,让人感觉舒适,设置圆角也是非常简单,有五种方式来设置. CGContextRef context = CGBitmapContextCreate(NULL, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedFirst); CGImageRelease(imageMasked);辅助方法: `static void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth, float ovalHeight) { float fw, fh;

iOS 不规则(多边形)图形切图

UIBezierPath *aPath = [UIBezierPath bezierPath]; i++) { NSValue * v1 = pointArr[i]; CGPoint result = CGPointMake((point1.x*rect2.width)/rect1.width, (point1.y*rect2.height)/rect1.height); } return CGRectMake(xMin, yMin, xMax-xMin, yMax-yMin); } 切割图片 //缩小图片 - (UIImage *)screenshotWithRect:(CGRect)rect imageView:(UIImageView *)imageV { UIGraphicsBeginImageContextWithOptions(rect.size, NO, [UIScreen mainScreen]. CGContextRef context = UIGraphicsGetCurrentContext(); return image;

根据UIColor生成图片

h 文件 #import @interface UIImage (LGFColorImage) #pragma mark - 生成一个平面颜色圆角可缩放图像 /** @param cornerRadius 圆角半径 @param cornerColor 圆角被截取部分填 */ + (UIImage *)lgf_ColorImageWithCornerRadius:(CGFloat)cornerRadius cornerColor:(UIColor *)cornerColor fillColor:(UIColor *)fillColor borderColor:(UIColor *)borderColor borderWidth:(CGFloat)borderWidth roundedCorners:(UIRectCorner)roundedCorners scale:(CGFloat)scale { static NSCache *__pathCache = nil;

iOS 图形绘制框架 ——UIBezierPath 、Core Graphics 和OpenGL

技术:就不能少搞些奇技淫巧吗,我已经连吐槽的力气都没有了. along with Core Graphics Services (Compositing), it was wrapped into the initial incarnation of Quartz. Quartz (and its renderer) were first demonstrated at WWDC in May 1999. Presently, the name Quartz 2D more precisely defines the 2D rendering capabilities of Core Graphics (Quartz)._programHandle) { NSLog(@"Failed to create program");linked) { GLint infoLen = 0;_context) { NSLog(@"Failed to initialize");

动画-CAShapeLayer实现QQ消息红点拖拽效果

//改变红点的位置 //transform并没有修改自身的 center(center 是 layer 的position),只是修改了 frame NSLog(@"偏移量:%@",NSStringFromCGPoint(transP)); //self.transform = CGAffineTransformTranslate(self.transform, transP.x, transP.y); } } } - (CGFloat )distanceWith:(UIView *)smallCircle bigCircle:(UIView *)bigScirle{ CGFloat offsetX = bigScirle.frame.origin.x - smallCircle.frame.origin.x; //描述路径 UIBezierPath *path = [UIBezierPath bezierPath];

iOS开发之CAShapeLayer初探

官方解释是lineWidth为线的宽度,默认为1;miterLimit为最大斜接长度。斜接长度指的是在两条线交汇处和外交之间的距离。只有lineJoin属性为kCALineJoinMiter时miterLimit才有效。边角的角度越小,斜接长度就会越大。为了避免斜接长度过长,我们可以使用miterLimit属性。如果斜接长度超过miterLimit的值,边角会以lineJoin的“bevel”即kCALineJoinBevel类型来显示。 7、[CAShapeLayer layer].

利用UIBezierPath画曲线折线图

利用UIBezierPath画曲线折线图 采用的三次曲线方式绘制path 关键坐标计算 image 在iOS中坐标原点在左上角 controlPoint1 = CGPointMake((prePonit.x+nowPoint.x)/2, prePonit.y); controlPoint2 = CGPointMake((prePonit.x+nowPoint.x)/2, nowPoint.y) /** 画曲线 @param points allPoints description */ - (void)drawPathWithPoints:(NSArray *)points{ UIBezierPath *path = [UIBezierPath bezierPath]; } } // 创建CAShapeLayer CAShapeLayer *layer = [CAShapeLayer layer];

用贝塞尔曲线和CAShapeLayer完成蒙版上‘抠个洞’

用贝塞尔曲线和CAShapeLayer完成蒙版上‘抠个洞’ 今天要做蒙版完成引导页,但是需求是在蒙版上扣出一块空白,用来高亮需要用户查看的位置。 查看了好多资料,大部分都是完成一个圆环或者渐变圆环,后边突然看到贝塞尔的一个属性 ,用后立马就解决了,特此记录。 效果图,主要是下方的透明 UIBezierPath *maskPath = [UIBezierPath bezierPathWithRect:self.bounds]; self.layer.mask = maskLayer;

使用Quartz 2D实现径向渐变

the location 1 of `gradient' corresponds to a circle centered at `endCenter' with radius `endRadius'; } 见证奇迹的时候就要到了!哦,等等,我们还需要一个ShapeLayer。那我们就创建一个CAShapeLayer对象,将线条的path加到shapeLayer上。上完代码(其实就跟使用CAShapeLayer和CAGradientLayer创建轴向渐变一模一样,只是将gradientLayer设置颜色和位置放到了类里面),让我们重新来见证奇迹吧!

饼状图

} 3.根据每个轴上的长度,来得到绘制的坐标点。 #pragma mark - 在第N条边上,长M的线对应的point - (CGPoint)pointForCornerIndex:(NSInteger)index length:(CGFloat)length { CGFloat redius = [self degreeForForCornerIndex:index];