Realizzo un editor di immagini che può creare oggetti di forme diverse come cerchi, triangoli e quadrati che possono anche essere aggiornati o rimossi. Quindi ho usato CAShapeLayer
per creare oggetti di forme.Disegnare una linea con Bezierpath usando l'oggetto CAShapeLayer
Ora voglio anche disegnare una linea sull'immagine che può anche essere aggiornata o rimossa, quindi ho usato bezierpath e CAShapeLayer
per creare la linea, funziona perfettamente. MA ora il problema è che quando voglio selezionare qualsiasi linea esistente può essere selezionato qualsiasi strumento dove vicino a linea perché CAShapeLayer
imposta anche la regione di riempimento che sarà una linea retta dal punto iniziale al punto finale.
La mia domanda è: come è possibile creare una linea senza area di riempimento utilizzando CAShapeLayer
.
Ecco il mio codice per la creazione di linea:
CAShapeLayer *line = [CAShapeLayer layer];
// Using bezierpath to make line
UIBezierPath *linePath=[UIBezierPath bezierPath];
// Creating L with line
[linePath moveToPoint:point1];
[linePath addToPoint:point2];
[linePath addToPoint:point3];
line.path=linePath.CGPath;
// Configure the appearence of the line
line.fillColor = Nil;
line.opacity = 1.0;
line.strokeColor = [UIColor whiteColor].CGColor;
Qualche idea su questo sarà molto apprezzato.
Funziona. Probabilmente hai dimenticato di aggiungere layer '' '[self.view.layer addSublayer: line];' '' – Shmidt
Ho aggiunto anche questa linea, crea la linea fine ma riempie anche la regione dal punto iniziale al punto finale e la considero come una parte di livello. Quindi il problema è che ogni volta che tento di toccare, vicino al livello della linea di linea, viene selezionato. –
Dovresti usare '[linePath addLineToPoint: point2]'? –