2013-06-19 16 views
5

Ich habe eine Reihe von Bildern, die auf einem transparenten Hintergrund zentriert sind. Ich würde ihnen gerne einen weißen Rand hinzufügen, und ich könnte es zeichnen, wenn ich den Pfad der Grenze des undurchsichtigen Teils des Bildes hätte. Ist es möglich, dies zu extrahieren?UIBezierPath um UIImage mit Transparenz

+0

Sie können dasselbe erreichen, indem Sie der Ebene einen Schatten hinzufügen. [Try this] (http://stackoverflow.com/a/5428108/2487322) – Idles

+0

Sind die Bilder in 'UIImageView's? Wenn dies der Fall ist, ist es viel einfacher, Grenzen hinzuzufügen, indem Sie Ebenen verwenden. ZB 'myImageView.layer.borderColor = [UIColor whiteColor] .CGColor' und' myImageView.layer.borderWidth = 2.f' Sie müssen das QuartzCore-Framework zu Ihrem Ziel hinzufügen und '#import 'in den .m-Dateien mit den Layern. – bobnoble

+2

Ich möchte keinen quadratischen Schatten oder Rand, ich möchte, dass es die gleiche Form des Bildes hat, das es enthält. – lavoy

Antwort

-2

Es gibt ein paar Möglichkeiten, wie Sie es tun können .. Machen Sie dies alles in init Methode Ihrer benutzerdefinierten Subview. Zuerst legen Sie die Rahmenfarbe fest. Hier ist die Art und Weise Sie es einrichten können:

borderColor = [UIColor greenColor]; 

und

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

Weiter zuteilen UIBezierPath als

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

Und zuletzt, außer Kraft setzen Ihre drawRect Methode als

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

Es sollte funktionieren. Glückliche Codierung !!