gpt4 book ai didi

ios - 从另一个 View Controller 中的类快速绘制形状(以编程方式)

转载 作者:行者123 更新时间:2023-11-29 02:10:28 25 4
gpt4 key购买 nike

我正处于制作简单图表的早期阶段。但是,我在以编程方式绘制形状时遇到了一些麻烦。

我试过很多这样的变体:

let donutChart = CounterView(frame = CGRectMake(100, 100, 100, 100))
cellView.addSubview(donutChart)

没有错误,但是在过去的两天里,我无法让它在屏幕上绘制任何东西。

我要画的类是这样的:

import UIKit

let NoOfGlasses = 8
let π:CGFloat = CGFloat(M_PI)

class CounterView: UIView {

var counter: Int = 5 {
didSet {
if counter <= NoOfGlasses {
//the view needs to be refreshed
setNeedsDisplay()
}
}
}

var outlineColor: UIColor = UIColor.blueColor()
var counterColor: UIColor = UIColor.orangeColor()

override func drawRect(rect: CGRect) {
// 1
let center = CGPoint(x:bounds.width/2, y: bounds.height/2)

// 2
let radius: CGFloat = max(bounds.width, bounds.height)

// 3
let arcWidth: CGFloat = 76

// 4
let startAngle: CGFloat = 3 * π / 4
let endAngle: CGFloat = π / 4

// 5
var path = UIBezierPath(arcCenter: center,
radius: bounds.width/2 - arcWidth/2,
startAngle: startAngle,
endAngle: endAngle,
clockwise: true)

// 6
path.lineWidth = arcWidth
counterColor.setStroke()
path.stroke()
}
}

这应该导致这个基本形状:

enter image description here

对于如何以编程方式在我的 View Controller 中绘制此形状的任何帮助,将不胜感激!

最佳答案

我把你的类(class)放在了 Playground 中。我可以使用以下命令来绘制它:

let myview = CounterView()
myview.frame = CGRectMake(100,100,300,300)
myview.counter = 5

这是它的样子:

Donut chart in Swift Playground

关于ios - 从另一个 View Controller 中的类快速绘制形状(以编程方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com