상위 패널(상위 클래스)에서 골격을 만들고

  var dataLayer : CALayer = CALayer(layer: 0)


    func drawAdata(_ index : Int) {

    }


 override func drawAdata(_ index : Int) {


골격구현


    override func drawAdata(_ index : Int) {

        if GS.s.logLevel.contains(.graphPanel) { debugPrint("index \(index)") }

        

        dataLayer.removeFromSuperlayer()

        dataLayer = jhType1graphLayer<T>(self, 0, maxY, index)

        dataLayer.frame = CGRect(x: GS.s.jhLMarginX, y: GS.s.jhLMarginY, width: self.bounds.width - GS.s.jhLMarginX, height: self.bounds.height - GS.s.jhLMarginY)

        dataLayer.zPosition=1

        self.layer.addSublayer(dataLayer)

        dataLayer.setNeedsDisplay()

        jhDataCenter.attachObserver(observer: self)

    }


데이터 센터는 그래프 드로잉에 필요한 데이터를 저장하는 공간이다. 해당 공간에 옵저버 패턴으로 구현된 브로드 캐스팅 시스템이 있다. - redraw를 위해.


원리는 간단하다. 본래 그렸던 레이어를 지우면서 계속해서 새로 그리는 것이다. 포토샵 할 때 레이어를 여러장 얹는 것과 같다. hightlight 되는 그래프나 점 같은 것을 그 위에 덮는 것.

+ Recent posts