首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CALayer 图层概念二、CALayer属性二、方法

隐式动画 (动画属性) 什么是隐式动画 ?...如 : bounds : 用于设置CALayer宽度和高度,修改这个属性会产生缩放动画. background : 用户设置CALayer背景色, 修改这个属性会产生背景渐变动画. position...viewclipToBounds 裁剪多余边缘 设置photoView中所有子控件如果超出了photoView有效范围,那么超出部分将不会显示 photoView.clipsToBounds...= YES ; 设置两边多余地方不裁剪 button.imageView.clipsToBounds = NO; 路径绘制,绘图剪裁 矩形图片剪裁成圆并且外面设置圆环并存储 给layer设置背景图片...(2)backgroundColor: 用户设置CALayer背景色, 修改这个属性会产生背景渐变动画 (3)position : 用于设置CALayer位置,修改这个属性会产生平移动画

1.4K70
您找到你想要的搜索结果了吗?
是的
没有找到

View编程指南

例如,通过动画,您可以更改view透明度,其在屏幕上位置,大小,背景颜色或其他属性。 如果直接使用view底层Core Animation layer对象,则还可以执行许多其他动画。...而是使用setNeedsDisplay或setNeedsDisplayInRect:方法使view无效。这些方法告诉系统,view内容改变了,需要在下一个机会重新绘制。...伸缩View 您可以指定View一部分为可拉伸,以便当view大小改变时,只有可拉伸部分内容受到影响。 您通常在按钮或其他View中使用可拉伸区域,其中部分view定义了重复图案。...如果指定将内容固定到边或角内容模式(因此实际上不会缩放内容),则view将忽略可拉伸区域。 注意:在可拉伸UIImage对象为view指定背景时,才建议使用contentStretch属性。...支持自定义控件通过控件类本身明确,记录良好接口来实现。 例如,UIButton类包含设置按钮标题和背景图像方法。 使用定义定制点意味着您代码将始终正常工作。

2.2K20

Android使用属性动画如何自定义倒计时控件详解

但是很显然,这些功能是不足以覆盖所有的场景,一旦我们需求超出了移动、缩放、旋转和淡入淡出这四种对View操作,那么补间动画就不能再帮我们忙了,也就是说它在功能和扩展方面都有相当大局限性,那么下面我们就来看看补间动画所不能胜任场景...最后,补间动画还有一个致命缺陷,就是它只是改变了View显示效果而已,而不会真正去改变View属性。什么意思呢?...比如说,现在屏幕左上角有一个按钮,然后我们通过补间动画将它移动到了屏幕右下角,现在你可以去尝试点击一下这个按钮,点击事件是绝对不会触发,因为实际上这个按钮还是停留在屏幕左上角,只不过补间动画将这个按钮绘制到了屏幕右下角而已...既然属性动画实现机制是通过对目标对象进行赋值并修改其属性来实现,那么之前所说按钮显示问题也就不复存在了,如果我们通过属性动画来移动一个按钮,那么这个按钮就是真正移动了,而不再是仅仅在另外一个位置绘制了而已...对上述示例做一下拆解,会发现实现起来还是很容易,需要处理主要是以下几部分 1.绘制外部环形进度条 2.绘制中央旋转图片 3.绘制倒计时时间 一.绘制外部环形进度条,分为两部分: 1.环形背景

1.6K20

灵活运用CSS开发技巧

在线演示 使用object-fit规定图像尺寸 要点:通过object-fit使图像脱离background-size约束,使用来标记图像背景尺寸 场景:图片尺寸自适应 兼容:object-fit 代码...在线演示 使用linear-gradient描绘方格背景 要点:使用linear-gradient绘制间断颜色彩带进行交互生成方格 场景:格子背景、占位图 兼容:gradient 代码:在线演示 ?...在线演示 使用box-shadow描绘单侧投影 要点:通过box-shadow生成投影,且模糊半径和负扩张半径一致,使投影偏向一侧 场景:容器投影、背景补间动画1、背景补间动画2、立体投影、文字立体投影...在线演示 动态边框 要点:鼠标悬浮时动态渐变显示边框 场景:悬浮按钮、边框动画 兼容:gradient 代码:在线演示 ?...在线演示 立体按钮 要点:点击呈现按下状态按钮 场景:按钮点击 兼容:box-shadow 代码:在线演示 ?

4.5K20

Android动画入门教程之kotlin

但是很显然,这些功能是不足以覆盖所有的场景,一旦我们需求超出了移动、缩放、旋转和淡入淡出这四种对View操作,那么补间动画就不能再帮我们忙了,也就是说它在功能和扩展方面都有相当大局限性,那么下面我们就来看看补间动画所不能胜任场景...然后补间动画还有一个缺陷,就是它只能够实现移动、缩放、旋转和淡入淡出这四种动画操作,那如果我们希望可以对View背景色进行动态地改变呢?很遗憾,我们只能靠自己去实现了。...最后,补间动画还有一个致命缺陷,就是它只是改变了View显示效果而已,而不会真正去改变View属性。什么意思呢?...比如说,现在屏幕左上角有一个按钮,然后我们通过补间动画将它移动到了屏幕右下角,现在你可以去尝试点击一下这个按钮,点击事件是绝对不会触发,因为实际上这个按钮还是停留在屏幕左上角,只不过补间动画将这个按钮绘制到了屏幕右下角而已...既然属性动画实现机制是通过对目标对象进行赋值并修改其属性来实现,那么之前所说按钮显示问题也就不复存在了,如果我们通过属性动画来移动一个按钮,那么这个按钮就是真正移动了,而不再是仅仅在另外一个位置绘制了而已

89110

绘图- 镂空效果及其动画实现解析

使用自定义形状CAShapeLayer作为mask也可以达到使图层显示出镂空效果。同样,图层显示出来区域是 CAShapeLayer外形。...(3) CAShapeLayerpath区域不能超出CAShapeLayerFrame,超出部分不会对图层显示起作用。 例子 叶子状进度条 ?...,其中水波上升效果是通过核心动画和 CAShapeLayerpath动态绘制实现,先了解更多可以看我其他两篇文章: 绘图-视图遮罩MaskView使用 绘图-类似百度外卖波浪效果实现与关键点解析...背景clear.gif 设置了self.waveSinLayer背景和self.waveCosLayer背景都为clearColor。 ?...positionWave"]; [self.waveCosLayer addAnimation:animation forKey:@"positionWave"]; 使用CABasicAnimation设置动画使波浪图层上移

2.1K20

❤️创意网页:创意动态画布~缤纷移动涂鸦~图片彩色打码

每次页面加载时,涂鸦起点位置和颜色都将随机生成,让每次绘制都成为一个独特艺术创作。 动态图展示 静态图展示 图片1 图片2 实现思路 首先,我们需要一个用于绘制动画 Canvas 元素。...我们将设置 CSS 样式,使 Canvas 铺满整个页面,并添加背景图片作为画布底色。...编写绘制方框函数,该函数接受位置和颜色作为参数,用于在 Canvas 上绘制方框。 创建一个更新画布函数。...最后,我们进行边界检测,以确保方框不会超出 Canvas 范围。然后使用 requestAnimationFrame() 函数来循环调用更新函数,实现动画效果。...最后,在页面加载时启动动画,并随机设置方框初始位置。 完整代码 <!

7710

【Flutter 专题】104 图解自定义 ACEDropdownButton 下拉框

iconChecked 选中图标; 下拉框在展示时不会遮挡 DropdownButton 按钮,默认在按钮顶部或底部展示; 下拉框展示效果调整为默认由上而下; 对于 DropdownButton...IndexedStack;其中在进行背景图标等各种样式绘制; Widget innerItemsWidget; if (items.isEmpty) { innerItemsWidget = Container..._DropdownMenu 中绘制 _DropdownMenuPainter 时处理,默认背景色为 Theme.of(context).canvasColor;当然我们也可以手动设置主题中 canvasColor...items 时,此时以屏幕顶部或底部为边界,展示滑动 items 下拉框; ?...动画,修改了很多方法,结果效果却很奇怪,不符合日常动画展示效果,因此无论从何处展示下拉框,均是从第一个 item 位置开始展示动画; ?

1.9K20

particle emitters(粒子发射源)

(背景颜色按钮) 更改呈现区背景色,可以让你更容易观察粒子 Particle System Properties(粒子系统属性区) 更改属性 Emitter attributes发射器属性 image...,则粒子系统基础色为白色 Animate color(动画颜色) 使颗粒在生命周期中不断改变颜色 Color variation(颜色变异) 设定颜色随机变异值 Size(尺寸) 设置颗粒尺寸 Image...rate(帧率) 设置动画每秒速度.使用单帧图片时设置为0 Animation(动画) 设置动画序列行为.Repeat重复循环,Clamp播放一次,Auto Reverse自动反转,从头到尾再返回开头...渲染属性 image Blending(混合) 设置渲染器绘制颗粒时混合模式,设置为Alpha,将会使用图片alpha通道信息来决定透明度 Orientation(旋转) 设置为Billboard...控制物理模拟中粒子物理行为基础物理属性,一般保持默认.Mass(质量),bounce(弹性),friction(摩擦),damping(阻尼) Life cycle attributes生命周期属性

1.2K20

css布局优化:布局计算限制— containwill-change合成层

比如,你页面顶部有一个固定位置header,而此时屏幕底部有某个区域正在发生绘制的话,整个屏幕都将会被绘制。 注意:在DPI较高屏幕上,固定定位元素会自动地被提升到一个它自有的渲染层中。...减少绘制区域通常需要对动画效果进行精密设计,以保证各自绘制区域之间不会有太多重叠,或者想办法避免对页面中某些区域执行动画效果。...用子元素是撑不开这个元素(声明都不给它尺寸会一直是 0x0),必须声明尺寸,且子元素不能超出元素范围,这个属性能够阻止子元素不断变大 -> 改变父元素尺寸 -> 影响更多节点 -> 发成大面积重排...为了限制这样属性影响到别的元素,让它影响力限制在宿主元素和其子元素范围内。强行生成一棵 DOM 子树,变成像 shadow dom 那样情况,外面的变量不会影响里面的;里面的也不会影响到外面。...display:contentsdisplay:contents 使 div 不产生任何框 ,因此不会渲染其背景 边框 和 内边距 ,但颜色 / 字体等继承属性还是会对其子元素产生效果即在盒子上添加

1.3K30

CSS相关

(物理像素),就是一个比例,IPhone4开始,dpr为2 ,这个东西作用是设计稿用750px,一个按钮设计为100px,那么CSS书写就是50px,详细一点解释为:https://juejin.cn...CSS边框 本节回顾两个属性border-radius、box-shadow 属性 描述 扩展 border-radius 给div元素添加圆角边框 border-radius 属性是一个最多指定四个...background-size:contain–保持图像纵横比并将图像缩放成将适合背景定位区域最大大小。...background-origin 该属性指定了背景图像位置区域 content-box padding-box border-box background-clip 该裁剪属性是指从指定位置开始绘制...当你设置一个元素为box-sizing:border-box时,此元素内边距和边框便不再增加它宽度了 outline-offset 对轮廓进行偏移,并在超出边框边缘位置绘制轮廓 19

1.5K30

Android CompoundButton

返回值 定义了OnClickListener被调用返回True,否则返回False public void setButtonDrawable (Drawable d) 给按钮背景设置一个绘制对象...(如:图像) 参数 d 用作背景绘制对象(如:图像) public void setButtonDrawable (int resid) 通过资源Id给按钮背景设置一个图像 参数 resid...参数 canvas 在画布上绘制背景 protected boolean verifyDrawable (Drawable who) 如果你视图子类显示他自己可视化对象,他将要重写此方法并且为了显示绘制返回...此操作允许进行绘制时有动画效果。   确认当重写从方法时,需调用父类相应方法。 参数 who 需判断绘制对象(Drawable)。...返回值 boolean 如果绘制对象( Drawable )已经在视图中显示,返回 True 否则返回 false 。并且此处不允许使用动画

84820

自定义View实现横向双水波纹进度条

思路分析 整体效果可分为三个,绘制圆角背景和圆角矩形,绘制第一条和第二条水波浪,根据自定义进度变化效果。...功能实现 1.绘制圆角背景和圆角矩形边框 圆角矩形边框: private RectF rectBorder; if (rectBorder == null) { rectBorder = new...i < getWidth() ;i+=waveLength来判断 这个没那么完美 //绘制p0 - p1 绘制波浪线 这里有一段是超出View,在View右边距右边 所以是* 2...secondWavePath.lineTo(0, waveActualSizeHeight); secondWavePath.close(); return secondWavePath; } 3.设置动画使进度和水波纹变化...结语 通过这个项目,主要可以学到贝塞尔曲线,也可以搭配上不同动画,搞定产品各种交互效果。对应文件:HorizontalWaveProgressView.java

69520

Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好手绘视频应用

我们对位图处理方式,可以实现简单手绘效果,也就是从左上角到右下角来匀速涂抹出图片;也可以做进一步处理,比如支持用户在位图背景上做进一步线条勾勒,保存为 SVG,绘制时是背景图被勾勒出来效果;...InkCanvas 和 InkToolbar     InkCanvas 定义了一个可以接收和展示所有笔输入区域,包括了墨迹笔画和橡皮笔画等;InkToolbar 定义了一个控件,其中包含自定义且扩展按钮集合...,这些按钮激活关联 InkCanvas 中与墨迹相关功能。...,这些按钮激活关联 InkCanvas 中与墨迹相关功能。...,这些按钮激活关联 InkCanvas 中与墨迹相关功总结

1.2K30

自定义View实现横向双水波纹进度条

思路分析 整体效果可分为三个,绘制圆角背景和圆角矩形,绘制第一条和第二条水波浪,根据自定义进度变化效果。...功能实现 1.绘制圆角背景和圆角矩形边框 圆角矩形边框: private RectF rectBorder; if (rectBorder == null) { rectBorder = new...i < getWidth() ;i+=waveLength来判断 这个没那么完美 //绘制p0 - p1 绘制波浪线 这里有一段是超出View,在View右边距右边 所以是* 2...secondWavePath.lineTo(0, waveActualSizeHeight); secondWavePath.close(); return secondWavePath; } 3.设置动画使进度和水波纹变化...结语 通过这个项目,主要可以学到贝塞尔曲线,也可以搭配上不同动画,搞定产品各种交互效果。对应文件:HorizontalWaveProgressView.java

66320

微信小游戏开发入门: 示例代码介绍

真机预览 点击工具上编译按钮,可以在工具左侧模拟器界面看到这个小游戏表现。点击预览按钮,通过微信扫一扫在手机上体验你第一个小游戏。 ? 文件结构 ?...顾名思义,这是对基于浏览器环境游戏引擎在小游戏运行环境下一层适配层,使游戏引擎在调用 DOM API 和访问 DOM 属性时不会产生错误。...游戏结束后重新开始按钮及事件处理也在这个文件中。 databus是个全局状态管理器,可以回收敌人,回收子弹,被回收内容,不会进行侦循环,就不会绘制到屏幕上。...其中玩家战机中有手指控制战机位置事件处理。子弹类中有子弹速度参数,及子弹超出屏幕回收处理逻辑,当然这两个类都有绘制图像资源定义。...背景可以换成一个足球场图片,把移动背景换成固定背景。 把敌机改成足球,可以使用各种不同类型足球图片。生成足球逻辑也修改,不同类型足球生成概率不同。珍惜级别的足球,降低概率。

4.5K20

腾讯开源超实用UI轮子库,我是轮子搬运工

功能列表 QMUIAnimationListView 使 ListView 支持添加/删除 Item 动画,支持自定义动画效果。...QMUIBottomSheet 在 Dialog 基础上重新定制了 show() 和 hide() 时动画效果, 使 Dialog 在界面底部升起和降下。...提供了以下功能: 更多参考 wiki 文档 在左侧/右侧添加图片按钮/文字按钮/自定义View。 设置标题/副标题,且支持设置标题/副标题水平对齐方式。...快速绘制一张带圆角渐变图片。 将当前图片颜色换成另一个颜色。 将两张图片叠加后生成一张新图片。 对某个 View 截图生成图片。...对 View 做背景颜色变化动画,支持多个动画参数。 对 View 做进退场动画,支持透明度变化和上下位移两种方式。

4.7K30
领券