기본적으로 순환 진행 막대를 표시하는 데 사용하는 drawRect 함수가 포함 된 클래스가 있습니다.Swift에서 클래스를 호출하여 drawRect 표시
내 문제는 진행률 원 표시 방법이 확실하지 않다는 것입니다. 나는 전에 수업을 많이 해 본 적이 없으므로 수업과 실제로 어떻게 상호 작용하는지 전혀 모른다. 내 SecondViewController 클래스 상기 코드를 가지고 난의 뷰 ('budgetDisplayView') 중 하나에 순환 진행 막대를 표시하고자
class ProgressCircle: UIView {
override func drawRect(rect: CGRect) {
var ctx = UIGraphicsGetCurrentContext()
var progress: CGFloat = 0.7
var innerRadiusRatio: CGFloat = 0.5
var path: CGMutablePathRef = CGPathCreateMutable()
var startAngle: CGFloat = CGFloat(-M_PI_2)
var endAngle: CGFloat = CGFloat(-M_PI_2) + min(1.0, progress) * CGFloat(M_PI * 2)
var outerRadius: CGFloat = CGRectGetWidth(self.bounds) * 0.5 - 1.0
var innerRadius: CGFloat = outerRadius * innerRadiusRatio
var center = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect))
CGPathAddArc(path, nil, center.x, center.y, innerRadius, startAngle, endAngle, false)
CGPathAddArc(path, nil, center.x, center.y, outerRadius, endAngle, startAngle, true)
CGPathCloseSubpath(path)
CGContextAddPath(ctx, path)
CGContextSaveGState(ctx)
CGContextClip(ctx)
CGContextDrawImage(ctx, self.bounds, UIImage(named: "RadialProgressFill").CGImage)
CGContextRestoreGState(ctx)
}
}
: 여기
내 코드 두 번째보기 컨트롤러.어떻게하면됩니까?
사용자 정의보기 (ProgressCircle)를보기 계층 구조에 추가하기 만하면 UIKit에서 drawRect를 호출합니다. 예를 들어 viewDidLoad에 'self.view.addSubview (progressCircle)'와 같은 것을 추가하면 – Clafou
불행하게도 '(ProgressCircle) .Type은 UIView로 변환 할 수 없습니다'라는 오류 메시지가 나타납니다. – user3746428
클래스와 객체를 혼동스럽게합니다. OOP 개념에 대한 빠른 과정을 수행하는 것이 좋습니다. 위의 줄 앞에 객체를 만들려면 'progressCircle = ProgressCircle()'을 입력하고 올바른 대문자를 사용하려면 위의 줄을 입력하십시오 (progressCircle는 인스턴스이고 클래스는 ProgressCircle가 아닙니다) – Clafou