Ich versuche, eine einfache Zeichnung App für das iPhone zu machen. Alles hat gut funktioniert, bis ich das Layout versucht habe.UIImage View keine Integer-Höhe mit Auto-Layout, gezeichnete Linie wird verschwommen
Meine Bildansicht sollte aufgrund des iPhone-Bildformats ein festes Seitenverhältnis von 3: 4 haben. Ich habe es auch an den Top Layout Guide und an die Seiten angeheftet.
Die Linien I zeichnen verzerrt werden und „wegfließen“
Je näher ich an das untere Ende der Ansicht zu erhalten, wird, je mehr die Linie nach oben gezogen.
ich irgendwo gelesen, dass es durch die Ansicht Aufnahme einer Höhe verursacht werden könnten, die keine ganze Zahl ist nach dem automatischen Layout, das wahr zu sein scheint:
ich die hart codieren nicht wollen rect für jedes iOS-Gerät.
Wie kann ich diese 0,5 in der Höhe "wegrunden"?
Hier meine Zuglinie Methode ist:
func drawLineFrom(fromPoint: CGPoint, toPoint: CGPoint) {
// 1
UIGraphicsBeginImageContext(tempImageView.frame.size)
let context = UIGraphicsGetCurrentContext()
tempImageView.image?.drawInRect(CGRect(x: 0, y: 0, width: tempImageView.frame.size.width, height: tempImageView.frame.size.height))
// 2
CGContextMoveToPoint(context, fromPoint.x, fromPoint.y)
CGContextAddLineToPoint(context, toPoint.x, toPoint.y)
// 3
CGContextSetLineCap(context, CGLineCap.Round)
CGContextSetLineWidth(context, brushWidth)
CGContextSetRGBStrokeColor(context, red, green, blue, 1.0)
CGContextSetBlendMode(context, CGBlendMode.Normal)
// 4b
CGContextStrokePath(context)
// 5
tempImageView.image = UIGraphicsGetImageFromCurrentImageContext()
tempImageView.alpha = opacity
UIGraphicsEndImageContext()
}
Ich habe bereits versucht, von Antialiasing zu wechseln, aber das half nicht, es machte es einfach schrecklich aussehen.