Je suis novice et j'ai été frustré par ce problème. Ce que j'essaie de faire est très simple: tracez une ligne droite au centre de l'écran et animez-la. Cela semble très simple, non? Ouais .. alors c'est ce que j'ai en ce moment.Animation de dessin au trait simple dans Swift
import UIKit
class Drawings: UIView {
override func drawRect(rect: CGRect) {
let screensize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screensize.width
let screenHeight = screensize.height
//context
let context = UIGraphicsGetCurrentContext()
CGContextSetLineWidth(context, 7.0)
CGContextSetStrokeColorWithColor(context, UIColor.whiteColor().CGColor)
//path
CGContextMoveToPoint(context, screenWidth, screenHeight * 0.5)
CGContextAddLineToPoint(context, screenWidth * 0.5, screenHeight * 0.5)
CGContextSetLineCap(context, CGLineCap.Round)
//draw
CGContextStrokePath(context)
}
}
La raison pour laquelle je demande est que j'ai trouvé que je ne peux pas l'animer, car il est en fonction drawRect. Est-ce vrai? Besoin d'explications de votre part. Merci!
Vous ne devriez pas accéder à l'écran ou à sa taille. Utilisez 'self.bounds' pour déterminer où dessiner (et ne dessinez pas en dehors de ces limites). Le 'drawRect:' est utilisé "une fois" (vous pouvez le faire redessiner) pour effectuer un dessin pour une vue, et le système de coordonnées local est en vigueur. – bshirley
Si vous n'avez pas vu Apple [iOS Drawing Concepts] (https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html) – bshirley
Note (sans importance à ce stade)): le paramètre 'rect' est généralement équivalent aux bornes. Il peut s'agir d'un sous-ensemble qui dit «vous n'avez besoin que de * dessiner une partie du cadre» Il est courant de tout redessiner (à moins d'avoir une vue complexe et coûteuse) – bshirley