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

优雅的实现CALayer的"AutoLayout"的两种方案

} - (void)layoutSubviews { [super layoutSubviews];CGColor, (id)[[UIColor alloc] initWithRed:33/255.0 green:94/255.0 blue:147/255.0 alpha:1]. method_exchangeImplementations(originalMethod, newMethod);self.layoutSubviewsCallback ? } - (void (^)(UIView *))layoutSubviewsCallback { return objc_getAssociatedObject(self, "layoutSubviewsCallback"); } @end 外部使用: CAGradientLayer *gradientLayer = [CAGradientLayer layer];

利用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"];

有趣的文字 - 渐变的文字

有趣的文字 - 渐变的文字 设置渐变颜色的文字有三种方法: 第一种是通过渐变图片遮罩,colorWithPatternImage 第二种是通过Layer设置渐变颜色 第三种是自定义label在drawRect里绘制渐变个人博客地址、简书地址、GitHub地址 1. colorWithPatternImage UILabel *demoLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 100, 350, 160)]; //gradientLayer.locations = @[@0, @0.5, @1]; CGContextClipToMask(context, rect, textMask);

使用Quartz 2D实现径向渐变

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

iOS 仿花椒直播聊天室消息列表渐隐消失效果

CGColor ]; layer.locations = @[@0, @0.4]; } 效果图: 效果图 没有滑动tableView,tableView顶部到底部有一个从模糊到清晰的效果,但是滑动之后,发现tableView的顶部不再模糊,我的想法是因为scrollView的特性,导致蒙层已经随着滚动上去了,所以我的解决方案是在ScrollView的代理方法中,再次设置蒙层。 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CAGradientLayer *layer = [[CAGradientLayer alloc] init];

iOS渐变色之CAGradientLayer

iOS渐变色之CAGradientLayer 简介 CAGradientLayer是CALayer的一个子类,是一个可以设置渐变色的图层,我们所设置的渐变色会覆盖原有layer背景色,并且渐变色会填充整个layer形状(包括圆角)。 创建 和一般的CALayer的创建方式相同 CAGradientLayer * gradientLayer = [CAGradientLayer layer]; gradientLayer.frame = CGRectMake(0, 100, self.view.frame.size.width, 200);CGColor,]; 颜色值位置 @property(nullable, copy) NSArray *locations;

设置UISearchController的UISearchBar背景色颜色渐变

设置UISearchController的UISearchBar背景色颜色渐变 首先要实现颜色渐变我们可以使用CAGradientLayer CAGradientLayer *gLayer = [CAGradientLayer layer]; 显示依然不能显示出渐变颜色,查看UISearchBar内的图层可以看到有一个UIImageView,我们需要将这个UIImageView删除掉才能看到渐变色 for (UIView *sview in _searchVC.searchBar.subviews.firstObject.subviews) { if ([sview isKindOfClass:[UIImageView class]]) { [sview removeFromSuperview];

iOS MKMapView 地图轨迹回放的动画实现

iOS MKMapView 地图轨迹回放的动画实现 这个动画是我们的app 1.6.0版本中的一个主要功能,先看效果: 运动轨迹. velocity = malloc(sizeof(float)*smoothTrackCount);i++){ @autoreleasepool { NSDictionary *dic = [smoothTrackArray objectAtIndex:i]; } #pragma mark - 构建path, 调用者负责释放内存! - (CGMutablePathRef)pathForPoints:(CGPoint *)points count:(NSUInteger)count{ if (points == NULL || count = 1){ return NULL; }else{ offset = xDiff/fabs(yDiff);

iOS开发中一些常用的属性

= setting.types) { return YES; } }else{//ios7 UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; if (UIRemoteNotificationTypeNone !

五分钟就能学会的运动刻度动画效果

[CATransaction commit]; 5 如果感觉上面的话和图看不懂的话还是直接看代码吧 -0- 不足之处 渐变色的完善,目前的渐变色不够满意 现在的染色并不支持做到逐块染色,视觉还原不够完美 刻度的圆角化?这就涉及到之前的刻度绘画方式是完全被推倒重写 上面的不足之处以后会慢慢完善,有啥建议的可以给我发 Issue,这里再发一遍项目地址 :)

iOS 圆环渐变色动画

//*progress*/ 在.m文件中 - (void)setProgress:(CGFloat)progress { _progress = progress; leftLayer.locations = @[@0.1,@0.8,@1]; } return _progressLabel; } 在viewController中 #import "ViewController.h" #import "SSYCycleView.h" //**自定义view*/ @interface ViewController () @property (nonatomic , strong)SSYCycleView *cycleView; [self createUI]; } - (void)sliderChangeMethod:(UISlider *)sender { self.cycleView.progressLabel.text = [NSString stringWithFormat:@"%.2f%%", sender.value*100];

为你的文本框添加进度提示模糊层

_topGradientLayer = [CAGradientLayer layer]; _topGradientLayer.colors = layerColors; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; } } 最后我们都知道TextView继承于UIScrollView,所以我们可以在scrollViewDidScroll代理方法中调整上侧下侧渐变层的显隐性以达到我们想要的效果。 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView.contentOffset.y 15) { _topGradientLayer.hidden = NO;

实现一个类似iOS9全局搜索的TableView Section Header效果

//遍历TableView中所有显示的cell for (UITableViewCell *cell in tableView.visibleCells) { //计算需要隐藏的高度:当前scrollView的contentOffset的y坐标+Header的高度-cell的y坐标 CGFloat hiddenFrameHeight = scrollView.contentOffset.y + HEADERHEIGHT - cell.frame.origin.y; self.layer.masksToBounds = YES; } } - (CAGradientLayer *)visibilityMaskWithLocation:(CGFloat)location { CAGradientLayer *mask = [CAGradientLayer layer]; mask.frame = self.bounds;

Core Animation简介(二)

Core Animation简介(二) 各种Layer 一、CAEmitterLayer 粒子发生器 CAEmitterLayer用来实现基于Core Animation的粒子发生器系统。每个粒子都是一个CAEmitterCell的实例。粒子绘制在背景色与border之上。 在属性中,可以指定Layer中的CAEmitterCell数组,每个cell定义了自己的一组属性,如速度、粒子发生率、旋转、缩放或者内容等。每个粒子也都有一个emitterCells属性,可以做为一个粒子发生器来运

iOS百分比View

iOS百分比View PercentView 一个圆形百分比View现在很多的App都有这么一个小小的View。可以用在显示你剩余流量占总流量的百分比,也可以显示你当前进度占总进度的百分比。 参数,属性 //目标layer @property (nonatomic, strong) CAShapeLayer *progressLayer; 其中gradientLayer可以设置多个颜色,做成那种颜色渐变的效果 _gradientLayer.colors = @[(id)[UIColor redColor].CGColor, (id)[UIColor yellowColor].

[iOS]添加渐变色的遮罩(CAGradientLayer)

[iOS]添加渐变色的遮罩(CAGradientLayer) // 设置图片 UIImageView * img = [UIImageView alloc] init]; img.image = [UIImage imageNamed:@"XXXX"]; shadow.frame = img.bounds; [img.layer addSublayer:shadow]; shadow.endPoint = CGPointMake(0, 1); // 设置渐变的颜色 shadow.colors = @[(__bridge id)[UIColor clearColor].CGColor, (__bridge id)[UIColor blackColor]. // 设置渐变分割点 shadow.locations = @[@(0.5f), @(1.0f)];

如何加载一个渐变色的Layer??

如何加载一个渐变色的Layer?? 用很简单的方法解决了一个很简单的问题. // 渐变分割线 @property (nonatomic, weak) CAGradientLayer * lineLayer; - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; } - (void)addLayer { // 判断存在,存在就删 if (self.lineLayer) { [self.lineLayer removeFromSuperlayer]; lineLayer.colors = [NSArray arrayWithObjects:(id)[kColor768082 colorWithAlphaComponent:0.0].CGColor, (id)[kColorF2C5B8 colorWithAlphaComponent:0.7].

再做一次可爱的猫咪switch开关动画吧~

关键帧动画,前边博文有详细讲到,在这就不细说了. # **开始画画** DrawHelper此类存放画好的path: images JSCatSwitch此类存放layer属性: images 在点击事件里触发动画: images 在controller里调动: images # **主要画画方法讲解**UIBezierPath 里主要方法讲解: //画二元曲线,一般和moveToPoint配合使用 addQuadCurveToPoint:controlPoint;//以某个中心点画弧线 addArcWithCenter:radius:startAngle:endAngle:clockwise;