2013-06-19 17 views
5

Ho una serie di immagini centrate su uno sfondo trasparente. Vorrei aggiungere un bordo bianco a tutti e potrei disegnarlo se avessi il percorso del bordo della parte opaca dell'immagine. È possibile estrarre questo?UIBezierPath intorno a UIImmagine con trasparenza

+0

È possibile eseguire la stessa operazione aggiungendo un'ombra al livello. [Prova questo] (http://stackoverflow.com/a/5428108/2487322) – Idles

+0

Le immagini sono in 'UIImageView's? Se è così, un modo molto più semplice per aggiungere bordi è usare i livelli. Ad esempio, 'myImageView.layer.borderColor = [UIColor whiteColor] .CGColor' e' myImageView.layer.borderWidth = 2.f' È necessario aggiungere il framework QuartzCore al target e '#import 'nei file .m usando i livelli. – bobnoble

+2

Non voglio un'ombra quadrata o un bordo, voglio che sia la stessa forma dell'immagine che contiene. – lavoy

risposta

-2

Ci sono un paio di modi in cui puoi farlo..Fai tutto questo nel metodo init della tua sottoview personalizzata. Per prima cosa imposti il ​​colore del bordo. Ecco il modo in cui è possibile impostare:

borderColor = [UIColor greenColor]; 

e

borderColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"anyImageName.jpg"]]; //[UIColor colorWithPatternImage:]; 

Prossimo allocare UIBezierPath come

UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:_yourImageView.frame cornerRadius:1.0]; 
[path setLineWidth:5.0];//set width as per your requirement. 

E per ultimo, sovrascrivere il metodo drawRect come

- (void)drawRect:(CGRect)rect 
{ 
    [borderColor setStroke]; 
    [path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];//alpha handles the transparency 
} 

Dovrebbe funzionare. Codifica felice !!