私は単純な円グラフを描画するココアタッチクラスであり、CGFloatの値でPieの正確な量を表示するようにイメージを調整できる次のコードを持っています。クラス間で値を渡す方法 -
たとえば、メインビューの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)
}
EDIT:円グラフは
を初期化され、そこからコードを追加しました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
ok - PieChatをこのように参照しますか? var sliderUpdate = PieChart! ? – PappaGee
PieChartが初期化されている場所からコードを追加しました。 - – PappaGee