利用CAShapeLayer和UIBezierPath结合画梯形图
1.在ViewController.m 中 初始化 画的图形的背景View view2
// 初始化父视图
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, 200, 100, 25)];// 坐标可以自行修改[self.view addSubview:view];[ViewController drawBackViewWithView:view BackColor:[UIColor colorWithRed:0.968 green:0.389 blue:0.037 alpha:1.000] LabelText:@"发信息"];//LabelText 是显示的文字UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(100, 300, 100, 25)];// 坐标可以自行修改[self.view addSubview:view2];[ViewController drawBackViewWithView:view2 BackColor:[UIColor colorWithRed:0.183 green:0.801 blue:0.931 alpha:1.000] LabelText:@"打电话"];
2.在ViewController.m 中 实现单利画图方法
#pragma mark 画不规则矩形(梯形)背景 部分尺寸大小可自行修改
+ (void)drawBackViewWithView:(UIView *)view BackColor:(UIColor *) color LabelText:(NSString *)string
{CGSize finalSize = CGSizeMake(CGRectGetWidth(view.bounds), CGRectGetHeight(view.bounds));CGFloat layerHeight = finalSize.height;CAShapeLayer *layer = [CAShapeLayer layer];UIBezierPath *bezier = [UIBezierPath bezierPath];[bezier moveToPoint:CGPointMake(0, finalSize.height - layerHeight)];[bezier addLineToPoint:CGPointMake(0, finalSize.height-1)];[bezier addLineToPoint:CGPointMake(finalSize.width, finalSize.height - 1)];[bezier addLineToPoint:CGPointMake(finalSize.width-7, finalSize.height - layerHeight)];[bezier addLineToPoint:CGPointMake(0,0)];layer.path = bezier.CGPath;layer.fillColor = color.CGColor;[view.layer addSublayer:layer];UILabel *labe = [[UILabel alloc]initWithFrame:CGRectMake(0, 2.5, CGRectGetWidth(view.bounds)-7, 15)];labe.text = string;labe.textColor = [UIColor whiteColor];labe.textAlignment = NSTextAlignmentCenter;labe.font = [UIFont systemFontOfSize:15];[view addSubview:labe];
}
实现效果如下:
转载请注明出处,谢谢!
利用CAShapeLayer和UIBezierPath结合画梯形图相关推荐
- iOS通过CAShapeLayer和UIBezierPath画环形进度条
UIBezierPath可以绘制矢量路径,而CAShapeLayer是Layer的子类,可以在屏幕进行绘制,本文主要思想是:CAShapeLayer按照UIBezierPath的矢量路径进行绘制. 效 ...
- 使用CAShapeLayer与UIBezierPath画出想要的图形
使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 步骤: 1.新建UIBezierPath对象bezierPath 2.新建CAS ...
- 利用python画梯形图案例
利用python画梯形图案例 import matplotlib.pyplot as plt import numpy as npdef mystep(x,y, ax=None, where='pre ...
- CAShapeLayer和UIBezierPath
一:贝塞尔曲线 UIBezierPath 使用UIBezierPath类可以创建基于矢量的路径,这个类再UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的 ...
- java线程画动图闪,Android中利用画图类和线程画出闪烁的心形,android心形,package com....
Android中利用画图类和线程画出闪烁的心形,android心形,package com.package com.tt.view;import android.content.Context;imp ...
- VC++ 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能
目录 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能 接上:VC+ ...
- Python:利用Pillow库创建字符画
我们就用这个可爱的小龙猫来做模板 这里,先导入我们要用到的Pillow库中的Image模块 from PIL import Image 创建Image实例,路径的话请自行修改 img = Image. ...
- 利用Python的turtle库画自行车
利用Python的turtle库画自行车 前言 前言总得说点什么.疫情在家,慕课上学习北理工嵩天等老师的<python语言程序设计>[1],觉得turtle画图,挺有意思,既然骑不了自行车 ...
- 仿QQ头像透明圆图剪切(CAShapeLayer 和 UIBezierPath的使用)
最近,研究了一下仿QQ头像透明圆图剪切,参考了一下code4App上一位大神的源码. 下面,把一些具体的思路写下来以助记忆,毕竟好记性不如烂笔头. 首先,用到了CAShapeLayer 和 UIBez ...
最新文章
- JS 缓存 设置临时缓存和长期缓存 sessionStorage localStorage
- shell编程基础之基本文本工具集合
- 在Tomcat中部署Java Web应用程序几种方式
- springmvc的相关配置文件
- 在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)
- mysql 更改root密码及 主机_设置更改root密码(远程,本地)、连接mysql、mysql常用命令...
- mysql 横向扩展 中间件_mysql-proxy数据库中间件架构 | 架构师之路
- [转] FFmpeg常用基本命令
- 20190501-整数翻转
- BitMEX将于2月16日16:00引入防止输入错误交易规则
- Linux中的两个经典宏定义
- 初步了解Java内部类
- Atitit etl之道 attilax著 1. ETL	1 1.1. (数据仓库技术)	2 1.2. ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性
- 当电脑连接网络的地方显示“查找不到任何网络”解决方案
- 电路课设-音响分频器电路设计
- 视觉定位领域专栏(二)常用数据集介绍
- linux环境下常用的打包、压缩、解压命令(tar、gzip、bzip2、zip)
- 华为鸿蒙系统没有芯片,被低估的鸿蒙系统,未来或将解决华为缺芯的难题
- 指纹识别与交互(冯建江,2022)
- 重庆大学计算机学院新生综合,重庆大学