使用UIBezierPath在Swift中绘制椭圆
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用UIBezierPath在Swift中绘制椭圆相关的知识,希望对你有一定的参考价值。
我有一个UIViewController
,我想在屏幕上画一个椭圆,从CGPoint(x:160,y:160)
开始,宽度:240
,高度:320
。我怎么能在swift中做到这一点?我非常感谢任何帮助。
答案
我相信这就是你要求的:
var ovalPath = UIBezierPath(ovalInRect: CGRectMake(160, 160, 240, 320))
UIColor.grayColor().setFill()
ovalPath.fill()
对于复杂的形状,我建议检查PaintCode。当您在屏幕上绘制形状时,它会为您创建快速代码(过去,它为我节省了大量时间)。
编辑:
import Foundation
import UIKit
class CustomOval: UView {
override func drawRect(rect: CGRect)
{
var ovalPath = UIBezierPath(ovalInRect: CGRectMake(0, 0, 240, 320))
UIColor.grayColor().setFill()
ovalPath.fill()
}
}
然后 :
var exampleView = CustomOval()
然后用约束等定位它。
斯威夫特4
var ovalPath = UIBezierPath(ovalIn: CGRect(x: 160, y: 160, width: 240, height: 320))
UIColor.gray.setFill()
ovalPath.fill()
另一答案
在Custom UIView中的override func drawRect(rect:CGRect)中编写此代码,然后根据需要进行编辑。
override func drawRect(rect: CGRect) {
let ellipsePath = UIBezierPath(ovalInRect: CGRectMake(100, 100, 100, 200))
let shapeLayer = CAShapeLayer()
shapeLayer.path = ellipsePath.CGPath
shapeLayer.fillColor = UIColor.clearColor().CGColor
shapeLayer.strokeColor = UIColor.blueColor().CGColor
shapeLayer.lineWidth = 5.0
self.layer.addSublayer(shapeLayer)
}
另一答案
let shapeLayer = CAShapeLayer()
shapeLayer.path = ovalPath.cgPath
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.strokeColor = UIColor.blue.cgColor
shapeLayer.lineWidth = 5.0
self.layer.addSublayer(shapeLayer)
以上是关于使用UIBezierPath在Swift中绘制椭圆的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中未知宽度和高度的视图中居中 UIBezierPath 椭圆?
拖动并缩放使用 UIBezierPath IOS/Swift 绘制的矩形