WebHU - Programozási kérdések és válaszok

ketyeg az x tengely alatt (iOS diagramok)

Az x tengely alatt szeretném bejelölni, ahol a dátumcímkék (3.6., 7.6., 12.6., 17.6, 21.6., 26.6.) vannak (lásd az alábbi képet). Az iOS Charts könyvtárát használom (https://github.com/danielgindi/Charts).

A drawGridLinemetódus felülbírálásával sikerült pipákat készítenem a grafikonon belül. Csak annyit tettem, hogy a vonalszakasz elejét viewPortHandler.contentTop-ról viewPortHandler.contentBottom - 5-ra változtattam. Azaz. a rácsvonal 5 képponttal az x tengely felett kezdődik. Ha azonban a rácsvonalat az x tengelyen túlra húzzuk (viewPortHandler.contentBottom + 10), a vonal továbbra is csak az x tengelyig húzódik le, de alá nem. Valaki tudna mutatni a helyes irányba? Hogyan rajzolhatom meg a függőleges vonalakat az x tengely alatt?

Itt van az egyéni XAxisRendererem:

class XAxisRendererWithTicks: XAxisRenderer {

    override func drawGridLine(context: CGContext, x: CGFloat, y: CGFloat) {
        guard
            let viewPortHandler = self.viewPortHandler
            else { return }

        if x >= viewPortHandler.offsetLeft
            && x <= viewPortHandler.chartWidth
        {
            context.beginPath()
            context.move(to: CGPoint(x: x, y: viewPortHandler.contentBottom - 5))
            context.addLine(to: CGPoint(x: x, y: viewPortHandler.contentBottom + 10))
            context.strokePath()
        }
    }
}

A pipák megjelennek, de azt szeretném, ha az x tengely alatt legyenek:

adja meg itt a kép leírását

Itt is van egy hasonló kérdés, de a válaszai nem igazán segítettek: Függőleges vonalak az X tengely iOS-diagramjain

28.06.2018

Válaszok:


1

Szerintem a drawGridLine nem a megfelelő függvény erre, mert nem rajzolhatsz az x tengely alá.

Sikerült megrajzolnom a pipákat az x tengely alá a drawLabel felülírásával. Ez a funkció az x tengely alá rajzolja a címkéket, és ezért mást is rajzolhat oda. Például a kívánt kullancsainkat!

class XAxisRendererWithTicks: XAxisRenderer {

     override func drawLabel(context: CGContext, formattedLabel: String, x: CGFloat, y: CGFloat, attributes: [NSAttributedString.Key: Any], constrainedToSize: CGSize, anchor: CGPoint, angleRadians: CGFloat) {

         super.drawLabel(context: context, formattedLabel: formattedLabel, x: x, y: y, attributes: attributes, constrainedToSize: constrainedToSize, anchor: anchor, angleRadians: angleRadians)

         context.beginPath()

        context.move(to: CGPoint(x: x, y: y))
        context.addLine(to: CGPoint(x: x, y: self.viewPortHandler.contentBottom))

        context.strokePath()
     }
}

Az egyéni megjelenítő használata:

let customXAxisRenderer = XAxisRendererWithTicks(viewPortHandler: self.chartView.viewPortHandler, xAxis: xAxis, transformer: self.chartView.getTransformer(forAxis: .left))

self.chartView.xAxisRenderer = customXAxisRenderer

Példakép: Kérem, ne törődjön a színekkel, de szerintem érted, mire gondolok. ;)

adja meg itt a kép leírását

Remélem ez segít!

15.04.2019
  • ha meg akarja változtatni a színét, csak adja hozzá a UIColor.lightGray.setStroke() 07.10.2019
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..