Sto lavorando su CAShapeLayer
.E cercando di disegnare path.I non lineari vogliono set struttura a CAShapeLayer
.Così posso usare CGPathGetPathBoundingBox
metodo per ottenere frame da CGPathRef
.Telaio e Bounds di CAShapeLayer
Ecco il codice:
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, rect.size.width/2, rect.size.height/2, 100, (0), (M_PI_2), NO);
CGPathAddArc(path, NULL, rect.size.width/2, rect.size.height/2, 100-50, (M_PI_2), (0), YES);
CGPathCloseSubpath(path);
CAShapeLayer* arcLayer = [[CAShapeLayer alloc]init];
arcLayer.path = path;
arcLayer.frame = CGPathGetPathBoundingBox(path);
arcLayer.bounds = CGPathGetPathBoundingBox(path);
[self.layer addSublayer:arcLayer]; `
Si prega di fare riferimento il mio codice con attenzione .Ho hanno fissato lo stesso telaio e limiti al problema CAShapeLayer.My è se io non pongo limiti (stesso frame), allora non mostrerò il mio contenuto o non mostrerà il mio contenuto all'interno del frame.Perché, per favore aiutatemi.
Quindi, in una frase: non impostare 'frame', solo' bounds', e anche impostare 'position'? –
Sì. Sebbene, pensavo che una domanda da 500 punti richiedesse una risposta un po 'più prolissa. –
In generale con i livelli penso che ottieni i risultati migliori impostando _bounds_ + _position_ e non _frame_. Ma per CAShapeLayer, non penso che i limiti siano importanti, a meno che non si voglia aggiungere una traduzione ai contenuti.Tuttavia questo non spiega perché il percorso non viene disegnato, vero? – nielsbot