Frage

Ich verwende eine Core-Plot-Bibliothek, um einen Balken-Chart für meine iPhone-Anwendung zu zeichnen, und das Problem tritt auf, wenn ich versuche, dem Diagramm ein Etikett oder einige andere Ansichten hinzuzufügen.

Eigentlich ist die Ansicht, die ich hinzugefügt habe, vertikal umgezogen so was ........

Der Code ist wie

UILabel *lbl= [[UILabel alloc] initWithFrame:CGRectMake(250, 90, 70, 25)];
    [lbl setBackgroundColor:[UIColor redColor]];
    [lbl setText:@"HELLO"];
    [self.view addSubview:lbl];
    [lbl release];

Ich wage es nicht, mit Core-Plot-Bibliothek zu spielen.

Gibt es also eine andere Möglichkeit, die Dinge richtig zu machen? Sollte ich eine Transformation durchführen, bevor ich die Ansichten hinzufüge?

Wenn dies die Lösung ist, ist dies teuer, da ich mehr als eine Unteransicht hinzufügen muss.

Ich hoffe, meine Frage ist allen klar.

War es hilfreich?

Lösung

Nun, es sieht so aus, als würde die Kernplot-Ansicht unter Verwendung einer CGaffinetransform invertiert. Ihre Ansicht erbt wahrscheinlich die Inversion von ihrer Übersicht. Es ist eigentlich ganz einfach zu tun,

lbl.transform = CGAffineTransformMakeScale(1,-1);

Sollte den Trick machen. Wenn Sie es oft tun müssen, vereinfachen Sie es vielleicht mit so etwas wie,

CGAffineTransform verticalFlip = CGAffineTransformMakeScale(1,-1);
lbl.transform = verticalFlip;
otherLbl.transform = verticalFlip;

etc...

Ein X-Achse-Flip wäre CGAffineTransformMakeScale(-1,1);

Andere Tipps

Um die tatsächlichen Transformationswerte zu vermeiden, können Sie versuchen zu verwenden CGAffineTransformInvert Funktion:

lbl.transform = CGAffineTransformInvert(self.view.transform);

Wenn wir eine Ebene transformieren möchten, die ein 3D -Modell ist, müssen Sie sie wie folgt verarbeiten,

Swift 5:

// To inverse the graph vertically
annotationGraph.transform = CATransform3DMakeAffineTransform(CGAffineTransform(scaleX: 1, y: -1))

Andernfalls hätten Sie das erhalten,

Der Wert des Typs 'cgaffinetransform' kann nicht den Typ 'catransform3D' eingeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top