天天看点

简单的画图

iOS上的图像和图形处理

UIColor.init(red: <#T##CGFloat#>, green: <#T##CGFloat#>, blue: <#T##CGFloat#>, alpha: <#T##CGFloat#>)

在这个函数中,所有的参数的范围都是0.0-1.0,所以有时候在用这个函数配置颜色是,当直接传入RGB值的时候,得不到想要的色泽,这个时候要将RGB的参数同时除以255换算成0.0-1.0之间才能显示效果

在绘图的时候可以调用UIcolor的实例方法set(),setFill(),setStroke()进行填充,在调用其cgColor方法的时候会回访cgColorRef,其是cgcolor的引用。UIcolor是cgcolor的封装,Cgcolor中的components,会返回一个数组即[R,G,B,a],所以可以通过这个方法获取颜色的值,以前做过一个项目,就是把导航栏和tableview的headerView的颜色设置的一样,怎么样都没有成功,所以.....我就放了两张图片上去,因为当时还不知道有这个方法

self.navigationController?.navigationBar.setBackgroundImage(UIImage.init(named: "navigationImage"), for: UIBarPosition.any, barMetrics: UIBarMetrics.default)

  • self.navigationController?.navigationBar.shadowImage = UIImage()

绘图的时候可以在UIView的draw(_ rect: CGRect)函数中,在UIKit中有绘制文字和图片的方法,如下

let str:NSString = "绘制文字"

str.draw(at: CGPoint.init(x: 18, y: 20), withAttributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 40)])

str.draw(at: CGPoint.init(x: 18, y: 70), withAttributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 40),NSKernAttributeName:5,NSForegroundColorAttributeName:color])

let image = UIImage.init(named: "navigationImage")

image?.draw(at: CGPoint.init(x: 18, y: 180))

image?.draw(in: CGRect.init(x: 18, y: 250, width: 100, height: 100))

在绘制文字的时候,可以通过Attributes来设置大小,颜色等属性,以前的可以直接设置,现在废弃掉了,

绘制的时候也可以用iOS较低层的Core Graphics的api,下面是绘制线段的方法

let color = UIColor.red

color.setStroke()

let context = UIGraphicsGetCurrentContext()

context!.setLineWidth(5.0)

context?.move(to: CGPoint.init(x: 20, y: 20))

context?.addLine(to: CGPoint.init(x: 45, y: 370))

context?.strokePath()

在绘制的时候,路径是缓冲区,可以不会立刻绘制到图形上下文中,其会在适当的时候进行绘制,如果想要立刻绘制出来,需要手动调用setNeedsDisplay()

CGMutablePath是绘制路径的可以绘制各种图形和线条

let color = UIColor.red

color.setStroke()

let SCREEN = UIScreen.main.bounds

let path = CGMutablePath.init()

path.move(to: CGPoint.init(x: 0, y: 0))

path.addLine(to: CGPoint.init(x: SCREEN.width, y: SCREEN.height))

path.move(to: CGPoint.init(x: SCREEN.width, y: 0))

path.addLine(to: CGPoint.init(x: 0, y: SCREEN.height))

let context = UIGraphicsGetCurrentContext()

context!.setLineWidth(5.0)

context?.addPath(path)//把路径添加到上下文中准备绘制

context?.strokePath()//绘制路径

简单的画图

转载于:https://www.cnblogs.com/moonandpenny/p/7281984.html