UIView - CAGradientLayer】的更多相关文章

CAGradientLayer *layer = [[CAGradientLayer alloc] init]; layer.frame = self.bounds; //渐变转折点 layer.locations = @[@, @]; //渐变颜色,个数与locations一致 layer.colors = [NSArray arrayWithObjects:(id)[UIColor clearColor].CGColor, (id)[UIColor blackColor].CGColor,…
将CAGradientLayer当做mask使用 效果 源码 https://github.com/YouXianMing/Animations // // CAGradientView.h // MaskView // // Created by YouXianMing on 16/2/15. // Copyright © 2016年 YouXianMing. All rights reserved. // #import <UIKit/UIKit.h> @interface CAGradi…
原文网址:使用CAGradientLayer的动画精度条View Modern software design is getting flatter and thinner all the time. Another trend that follows suit is the thin, one pixel progress bar that you see at the top of websites and apps. You’ve seen in it on Medium blogs,…
CATransformLayer CATransformLayer不同于普通的CALayer,因为它不能显示它自己的内容.只有当存在了一个能作用域子图层的变换它才真正存在.CATransformLayer并不平面化它的子图层,所以它能够用于构造一个层级的3D结构,比如我的手臂示例. 我们将通过旋转camara来解决图层平面化问题而不是像立方体示例代码中用的sublayerTransform.这是一个非常不错的技巧,但是只能作用域单个对象上,如果你的场景包含两个立方体,那我们就不能用这个技巧单独旋…
1. UIView 视图的渐变填充 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //渐变填充色的图形 let rect = CGRect(x: 30, y: 60, width: 200, height: 200) let gradientView = UIView(frame: rect) le…
CGRect rect = CGRectMake(100, 100, 100, 100); UIView * bgView = [[UIView alloc]initWithFrame:rect]; bgView.backgroundColor = [UIColor grayColor]; [self.view addSubview:bgView]; CAShapeLayer * trackLayer = [CAShapeLayer layer]; trackLayer.frame = bgVi…
两个动画效果来了解一下CALayer的两个重要的subClass,CAGradientLayer和CAShapeLayer. 微视录制视频的时候那个进度效果和Spark相机类似,但是个人还是比较喜欢Spark相机的录制的效果. CAShapeLayer 我们做一个和Spark相机一样的圆形进度,每一段有一种颜色,标识不同时间段录的视频. 首先,我们创建一个 UIView 的子类叫 RecordingCircleOverlayView 这样看起来比较有意义,然后我们看到圆形进度条有一个底色是灰色的…
01 UIView视图的基本使用 --- 在根视图中添加2个UIView视图 //视图确实加载时调用 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //CGRect包含了原点和大小等信息. CGRect rect1 = CGRectMake(30, 50, 200, 200); UIView *view1 = […
-(void)colorWear:(UIView *)view{ CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame =CGRectMake(0,0,view.frame.size.width,view.frame.size.height); gradient.colors = [NSArray arrayWithObjects: (id)[UIColor whiteColor].CGColor, (id)[UI…
1.创建 渐变色 /// 渐变色:默认从上到下 private var gradientLayer: CAGradientLayer = { let g = CAGradientLayer() g.colors = [UIColor.init(hexColor: "DBB479").cgColor, UIColor.init(hexColor: "F7E1B3").cgColor] //改为从左到右 的渐变 g.startPoint = CGPoint(x: 0,…
圆角 sampleView.layer.cornerRadius = 2.5; // 圓角的弧度sampleView.layer.masksToBounds = YES; 阴影 sampleView.layer.shadowColor = [[UIColor blackColor] CGColor];sampleView.layer.shadowOffset = CGSizeMake(3.0f, 3.0f); // [水平偏移, 垂直偏移]sampleView.layer.shadowOpaci…
将CAGradientLayer用作maskView的遮罩图层 说明 CAGradientLayer可以用作alpha遮罩,供maskView使用,这两种东西都是非常偏门的东西,但是,偏门不代表功能不强大,我们可以用CAGradientLayer制作出非常牛逼的动画效果,此博文,本人抛砖引玉简易介绍怎么将CAGradientLayer与maskView联系上.后续博文会陆续扩展并写出更好的控件. 只有完美的UI交互效果才能够为功能强大的app锦上添花,本人致力于研究分析苹果开发中那些巨牛逼但却无…
修改UIView的默认Layer后,修改View的值会动态修改Layer的值 效果图: 如上图所示,当我们修改了一个UIView的子类中的Layer内置类型时(如上图中我们将CALayer直接替换成了CAGradientLayer类),会直接作用到其内置的Layer当中. 我们可以用这个特性将Layer封装到View当中,然后直接修改view就能达到我们想要实现的目的. 源码: // // AlphaView.h // YXMWeather // // Created by XianMingYo…
看支付宝蚂蚁积分,天气预报等好多APP都有圆形渐变效果,今天就试着玩了. 一.CAGradientLayer类中属性介绍 CAGradientLayer继承CALayer,主要有以下几个属性: 1.@property(nullable, copy) NSArray *colors; 渐变的颜色 这个数组中只设置一个颜色是不显示的 2.@property(nullable, copy) NSArray<NSNumber *> *locations;每种颜色的最亮的位置 3.@property C…
CAGradientLayer实现图片渐变透明效果 要实现的效果如下: 源码: // // RootViewController.m // CAGradientLayer // // Copyright (c) 2014年 Y.X. All rights reserved. // #import "RootViewController.h" #import "YXGCD.h" @interface RootViewController () @property (n…
OCiOS开发:CAGradientLayer 渐变色 CAGradientLayer 简介 CAGradientLayer是CALayer图层类的子类,用于处理渐变色的层结构. CAGradientLayer的渐变色可以做隐式动画. CAGradientLayer和CAShapeLayer配合使用可实现复杂效果. CAGradientLayer可以用作PNG的遮罩效果. CAGradientLayer 坐标系统 CAGradientLayer的坐标系统是从坐标(0,0)到(1,1)绘制的矩形.…
目录:[Swift]Xcode实际操作 本文将演示创建一个具有渐变填充色的图形 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //初始化一个原点在(10,80),尺寸为(300,300)的矩形…
Animated progress view with CAGradientLayer(带翻译)  Modern software design is getting flatter and thinner all the time. Another trend that follows suit is the thin, one pixel progress bar that you see at the top of websites and apps. You’ve seen in it…
#import <UIKit/UIKit.h> @interface TJGradientProgressView : UIView /** * 进度值 */ @property(nonatomic,assign) CGFloat progressValue; /** * 开始动画 */ - (void)startAnimating; /** * 停止动画 */ - (void)stopAnimating; @end // // TJGradientProgressView.m // TJGr…
1.CAGradientLayer简介 CAGradientLayer用于制作背景图层的颜色渐变,也就是颜色梯度!相关属性简介: #import <QuartzCore/CALayer.h> #import <Foundation/NSArray.h> NS_ASSUME_NONNULL_BEGIN CA_CLASS_AVAILABLE (10.6, 3.0, 9.0, 2.0) @interface CAGradientLayer : CALayer //颜色数组 CGColor…
首先两个方法都是异步执行.layoutSubviews方便数据计算,drawRect方便视图重绘. layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews.2.addSubview会触发layoutSubviews.3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化.4.滚动一个UIScrollView会触发layoutSubviews.5.旋转Screen会触发父UIView上的layo…
示例代码 //#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…
有时候在项目中,为了保持前后页面的推进方式跳转方式一致,会在通过UIview上的控件跳到另一个Controller上,所以,这时候就需要用到这种方式了,当然,present方法可以实现跳转但是样式可能不同,这时候在我的想法可以使用代理或者回调,当你不熟悉时,就用到了这个方法: 1.参考别人的方法:   http://gekie.iteye.com/blog/1133460 2.使用响应者链的方法... 1> 假定你的项目中有文件 UIViewContronllerA, UIViewContron…
我想题目说的或许不是很清楚,那么现在我详细介绍一下这篇随笔内容. 在外部无法改变UIVIew控件的size. 这里说是UIView,但是事实上,是大多数控件而绝非仅UIView. 想要实现在外部无法改变size该怎么做呢. 首先是重写setFrame使其规定本身size,如下 // // TestView.m // CX-实现在外部无法改变UIView的Size // // Created by ma c on 16/3/25. // Copyright © 2016年 xubaoaichiyu…
iOS系列 基础篇 05 视图鼻祖 - UIView 目录: UIView“家族” 应用界面的构建层次 视图分类 最后 在Cocoa和Cocoa Touch框架中,“根”类时NSObject类.同样,在UIKit框架中,也存在一个神奇的类——UIView. 从继承关系上看,UIView是所有视图的根,我们形象地称其为“始祖”. 本篇,咱们就一起研究UIView的神奇所在. 1. UIView“家族” UIView“家族”大体分为“控件”和“视图”两类,二者均继承于UIView. UIView类的…
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 …
// 设置边框的宽度 cell.layer.borderWidth = 1 // 设置边框的颜色 cell.layer.borderColor = UIColor.blackColor().CGColor // 设置UIView的边框为圆角和展现 cell.layer.cornerRadius = 10 //自动遮罩不可见区域,超出的不显示 cell.layer.masksToBounds = true cell.backgroundColor = UIColor.whiteColor()…
如图: 悬浮的三个按钮下方有一个可以点击的灰色区域,但是点击按钮之间的透明区域, 这三个按钮的contentView会响应这个点击事件,这时候需要让这个contentView不响应这个点击事件. 解决方法如下(将此方法增加到这个contentView类中即可): - (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ UIView *hitView = [super hitTest:point withEvent:event];…
绘制一个UIVIew最灵活的方式就是由它自己完成绘制.实际上你不是绘制一个UIView,你只是子类化了UIView并赋予子类绘制自己的能力.当一个UIVIew需要执行绘图操作的时,drawRect:方法就会被调用.覆盖此方法让你获得绘图操作的机会.当drawRect:方法被调用,当前图形上下文也被设置为属于视图的图形上下文.你可以使用Core Graphics或UIKit提供的方法将图形画到该上下文中. 你不应该手动调用drawRect:方法!如果你想调用drawRect:方法更新视图,只需发送…
iOS layout的相关方法: 1,layoutSubviews 2,layoutIfNeeded 3,setNeedsLayout 4,setNeedsDisplay 5,drawRect 6,sizeThatFits 7,sizeToFit   大概有以上几个.   一,layoutSubviews 这个方法,默认没有做任何事情,需要子类进行重写.layoutSubviews会在以下情况下被调用: 1,init初始化不会触发layoutSubviews,如果设置了不为CGRectZero的…