iOS开发之颜色渐变

这篇具有很好参考价值的文章主要介绍了iOS开发之颜色渐变。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CAGradientLayer

在其背景色上绘制颜色渐变的图层,填充该图层的形状(包括圆角)。

使用渐变层可以创建包含任意数量颜色的颜色渐变。默认情况下,颜色均匀地分布在整个图层中,但您可以通过渐变指定控制颜色位置的位置。

下例,显示了如何创建包含四种颜色的渐变层,这些颜色通过渐变均匀分布。将图层旋转90°(pi / 2弧度)得到水平梯度。

gradientLayer.colors = [UIColor.red.cgColor,
                        UIColor.yellow.cgColor,
                        UIColor.green.cgColor,
                        UIColor.blue.cgColor]
     
gradientLayer.transform = CATransform3DMakeRotation(CGFloat.pi / 2, 0, 0, 1)

默认方向是从上到下进行渐变

CAGradientLayer的属性
  • colors

    CGColorRef对象数组,定义每个渐变停止的颜色。可以做成动画。

  • locations
    一个可选的NSNumber对象数组,定义每个渐变停止的位置。可以做成动画。

  • endPoint
    在图层的坐标空间中绘制渐变的终点。可以做成动画。

    终点对应梯度的最后一站。点在单位坐标空间中定义,然后在绘制时映射到层的边界矩形。默认值为(0.5,1.0)。

  • startPoint

    在图层的坐标空间中绘制渐变的起始点。可以做成动画。

    起始点对应于梯度的第一个停止点。点在单位坐标空间中定义,然后在绘制时映射到层的边界矩形。默认值为(0.5,0.0)。

  • type

    由图层绘制的渐变样式。 默认X轴

  • transform
    相对于其边界矩形的锚点应用于层的变换。默认为单位变换。可以做成动画。

示例:

 // 设置一个渐变按钮
 let d = QMUIButton()
 d.setTitle(R.string.localizable.settingNavUserTxt(), for: .normal)
 d.setTitleColor(.white, for: .normal)
 d.titleLabel?.font = UIFont.systemFont(ofSize: FONT_MEDDLE)
 d.backgroundColor = .primaryColor
 d.cornerRadius = 8
 // 必须使用CGRect去设置大小
 d.frame = CGRect(x: 0, y: 0, width: 168, height: 40)
 // 设置渐变色
 let gradient = CAGradientLayer()
 gradient.colors = [UIColor(red: 1, green: 1, blue: 1, alpha: 0).cgColor,UIColor(red: 1, green: 1, blue: 1, alpha: 0.4).cgColor]
 gradient.transform = CATransform3DMakeRotation(0, 0, 0, 1)
 gradient.frame = d.bounds
 gradient.borderWidth = 2
 gradient.borderColor = UIColor.primaryColor.cgColor
 gradient.cornerRadius = 8
 gradient.startPoint = CGPoint(x: 0, y: 0)
 gradient.endPoint = CGPoint(x: 0, y: 1)
 // 将渐变添加到按钮layer上
 d.layer.addSublayer(gradient)
 d.clipsToBounds = true

效果如图:
ios 渐变色,iOS学习,ios文章来源地址https://www.toymoban.com/news/detail-797003.html

到了这里,关于iOS开发之颜色渐变的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS3 实现边框圆角渐变色&&渐变文字效果

      background-clip: text; 是CSS中的一个属性,用于指定背景图片或颜色的裁剪方式,裁剪的区域是文本的轮廓。具体来说,就是将背景图片或颜色限制在文本的轮廓内,而不是整个元素的范围内。这个属性通常用于创建一些特殊的文本效果,比如文字渐变、文字填充等。  参考:

    2024年02月16日
    浏览(58)
  • 【学习iOS高质量开发】——协议与分类

    对象之间经常需要相互 通信,而通信方式有很多种。OC开发者广泛使用一种“委托模式”的编程设计模式来实现对象间的通信,该模式的主旨是:定义一套接口,某对象若想接收另一个对象的委托,则需遵从此接口,以便于成为其“委托对象”,而这“另一个对象”则可以给

    2024年02月22日
    浏览(35)
  • 【学习iOS高质量开发】——对象、消息、运行期

    “ 属性 ”是OC的一项特性,用于封装对象中的数据。OC对象通常会把其需要的数据保存为各种实例变量。实例变量通过“存取方法”来访问。其中, “获取方法”用于读取变量值,而“设置方法”用于写入变量值。 如何在类接口的public区段中声明一些实例变量,下面提供一

    2024年01月22日
    浏览(60)
  • 【学习iOS高质量开发】——接口与API设计

    OC中没有其他语言那种内置的命名空间机制(namespace),所以我们在对文件命名时要避免潜在的命名冲突,若是发生重名冲突,那么应用程序相应的链接过程就会出错,因为其中出现了重复的符号。例如: 这个错误就是因为两份代码都各自实现的EOCTheClass类导致该类所对应的类符

    2024年02月20日
    浏览(50)
  • 【学习iOS高质量开发】——熟悉Objective-C

    Objective-C和Java、C++都是面向对象语言但是语法上有些许不同。OC使用“消息结构”而不是“函数调用”,这二者的区别主要体现在: 使用消息结构的语言,其运行所应执行的代码由运行环境来决定;使用函数调用的语言,则由编译器决定。OC的重要工作都是由运行期组件来完

    2024年01月19日
    浏览(50)
  • Flutter ios 使用ListView 。滚动时 AppBar 改变颜色问题

    在Ios 中 列表滚动条向下滚动一段距离后 会导致 AppBar 颜色改变  可以给 AppBar 或者 AppBarTheme。 scrolledUnderElevation: 0.0 属性 全局: 局部: 效果:  滚动前 滚动后 x ke z

    2024年04月17日
    浏览(38)
  • 移动应用开发介绍及iOS方向学习路线(HUT移动组版)

    ​ 作为一个HUT移动组待了一坤年(两年半)多的老人,在这里为还在考虑进哪个组的萌新们以及将来进组的新朋友提供一份关于移动应用开发介绍以及学习路线的白话文,因为我是iOS方向的,所以学习路线就只介绍iOS了,希望这篇文章对你了解移动应用开发有帮助。 ​ 从字

    2024年02月04日
    浏览(44)
  • STM32外设芯片驱动学习记录 —— (二) PCA9555 IO扩展芯片驱动开发

    一、芯片介绍 二、Datasheet解读 1.硬件说明 2.寄存器说明 3.通信过程 三、驱动代码编写 1.软件I2C驱动 2. PCA9555芯片驱动函数 总结         PCA9555可设置16路输入或输出口,I2C接口,用于IO扩展,3个硬件地址引脚寻址,工作电压:VCC(2.3V 至 5.5V)。 1)框图   INT:中断输出 A0,

    2024年02月11日
    浏览(52)
  • 作为一名iOS开发者—面对音视频这个新风口应该怎样学习才能乘风而起?

    5G时代,为何各大厂纷纷杀入音视频领域?这会是新的风口吗! 随着5G开始普及加上国内外网络资费的不断下降,音视频的前景已经越来越广阔! 大家都知道,在现在的日常生活中,视频类应用占据了我们越来越多的时间,不管是抖音、快手等短视频,还是斗鱼、虎牙这类的

    2024年02月01日
    浏览(57)
  • 鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)

    鸿蒙开发学习是一项探索性的工作,旨在开发一个全场景分布式操作系统,覆盖所有设备,让消费者能够更方便、更直观地使用各种设备。 鸿蒙系统定位为面向未来、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。它通过分布式技术,将各种

    2024年01月15日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包