Le dessin du texte sur les Graphiques en Swift 3

Contexte: je suis en s'appuyant sur une UIImageView avec des Graphiques de Base. Je voudrais puiser une chaîne de texte sur la base des graphismes de dessin.

Ce (hackingwithswift.com) méthode que j'ai utilisé pour dessiner le texte à une image, réglage de mon imageView à cette image, et ensuite tirer dessus avec des graphiques de base. Mais je veux que le texte de la superposition de graphiques de base du dessin.

Maintenant que j'ai déménagé à cette https://stackoverflow.com/a/35574171/6337391 mais il n'est toujours pas me permettre d'écrire sur le dessus de mon dessin.

class MapViewController: UIViewController {
@IBOutlet var imageView: UIImageView!
func drawScale() {
//establish 6 points to draw a little bar with
        let length = CGFloat(80.0)
let bottom = imageView.bounds.size.height - 15.0
let left = CGFloat(20.0)
let top = bottom - 20.0
let middle = top + 10.0
let right = left + length
let topLeft = CGPoint(x: left, y: top)
let topRight = CGPoint(x: right, y: top)
let bottomRight = CGPoint(x: right, y: bottom)
let bottomLeft = CGPoint(x: left, y: bottom)
let middleLeft = CGPoint(x: left, y: middle)
let middleRight = CGPoint(x: right, y: middle)
//draw the bar
        drawLineFrom(fromPoint: topLeft, toPoint: bottomLeft, color: UIColor.red.cgColor, width: 1.0, alias: false)
drawLineFrom(fromPoint: topRight, toPoint: bottomRight, color: UIColor.red.cgColor, width: 1.0, alias: false)
drawLineFrom(fromPoint: middleLeft, toPoint: middleRight, color: UIColor.red.cgColor, width: 1.0, alias: false)
//draw a text string
        UIGraphicsBeginImageContext(self.imageView.frame.size)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .center
let attrs = [
NSFontAttributeName: UIFont.systemFont(ofSize: 12),
NSParagraphStyleAttributeName: paragraphStyle,
NSForegroundColorAttributeName: UIColor.red]
let scaleString = "45 feet"
scaleString.draw(at: CGPoint(x: 0, y: 50), withAttributes: attrs)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
/* Stroke a line between two CGPoints. Color, width, anti-alias options. */
func drawLineFrom(fromPoint: CGPoint, toPoint: CGPoint, color: CGColor, width: CGFloat, alias: Bool) {
//1
        UIGraphicsBeginImageContext(self.imageView.frame.size)
let context = UIGraphicsGetCurrentContext()!
context.setShouldAntialias(alias)
self.imageView.image?.draw(in: CGRect(x: 0, y: 0, width: self.imageView.frame.size.width, height: self.imageView.frame.size.height))
//2
        context.move(to: fromPoint)
context.addLine(to: toPoint)
//3
        context.setLineWidth(width)
context.setStrokeColor(color)
//4
        context.strokePath()
//5
        self.imageView.image = UIGraphicsGetImageFromCurrentImageContext()
self.imageView.alpha = 1.0
UIGraphicsEndImageContext()
}
}

Ne marche pas. Le dessin de la chaîne de texte efface complètement la barre. Si le déplacement de la barre de dessin code sous la chaîne de code de dessin, puis les deux sont visibles, mais la barre est alors au-dessus de la chaîne.

Pourriez-vous créer votre texte dans un CATextLayer et l'ajouter à l'affichage de l'image?
Qu'entendez-vous par "je suis de dessin sur une UIImageView avec des Graphiques de Base", et en vertu de quelle classe êtes-vous en cours d'exécution de votre code?
J'ai ajouté un peu de mise en contexte de code, j'espère que ça aide. Je pense que la réponse va mentir à Base de Texte, je vais essayer de trouver une solution sur la route moi-même. Des choses comme link prometteurs

OriginalL'auteur Harry Netzer | 2017-02-28