다음 코드는 간단한 파이 차트를 그리는 코코아 터치 클래스이며 CGFloat 값을 사용하여 올바른 양의 파이를 표시하도록 이미지를 조정할 수 있습니다.클래스간에 값을 전달하는 방법 -
기본보기 controler.swift의 슬라이더에서 예를 들어 값을 전달할 수 있습니까? 고정 된 대신에 값을 전달할 수 있습니까?
public class PieChart : NSObject {
public class func drawCanvas1(ratio ratio: CGFloat = 0.75) {
//// Variable Declarations
let expression: CGFloat = 90 + ratio * 360
let ovalPath = UIBezierPath(ovalInRect: CGRect(x: 0, y: -0, width: 112, height: 112))
UIColor.blackColor().setFill()
ovalPath.fill()
let oval2Rect = CGRect(x: 4, y: 4, width: 104, height: 104)
let oval2Path = UIBezierPath()
oval2Path.addArcWithCenter(CGPoint(x: oval2Rect.midX, y: oval2Rect.midY), radius: oval2Rect.width/2, startAngle: -expression * CGFloat(M_PI)/180, endAngle: -90 * CGFloat(M_PI)/180, clockwise: true)
oval2Path.addLineToPoint(CGPoint(x: oval2Rect.midX, y: oval2Rect.midY))
oval2Path.closePath()
UIColor.redColor().setFill()
oval2Path.fill()
}
}
이 내 ViewController.swift입니다
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var sliderValue: UISlider!
@IBAction func sliderMoved(sender: UISlider) {
let mySliderValue = sliderValue.value
// 내가 붙어 곳이다 ->
drawCanvas1 = Float(mySliderValue)
}
편집 : pieChart에이
를 초기화되는 곳에서 추가 된 코드import UIKit
@IBDesignable
class PCView: UIView {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
override func drawRect(rect: CGRect) {
PieChart.drawCanvas1()
}
}
'ViewController'에서'PieChart'에 대한 참조가 필요합니다. 'PieChart'는 어떻게 그리고 어디서 초기화됩니까? – vadian
오케이 - 그래서 PieChat을 이처럼 참조하겠습니까? var sliderUpdate = PieChart! ? – PappaGee
PieChart가 초기화되는 코드를 추가했습니다. - – PappaGee