2013-06-19 22 views
5

Mam serię obrazów, które są wyśrodkowane na przezroczystym tle. Chciałbym dodać do nich białą ramkę i mógłbym ją narysować, gdybym miał ścieżkę granicy nieprzezroczystej części obrazu. Czy można to wydobyć?UIBezierPath wokół UIImage z przezroczystością

+0

Możesz osiągnąć to samo, dodając cień do warstwy. [Spróbuj tego] (http://stackoverflow.com/a/5428108/2487322) – Idles

+0

Czy obrazy znajdują się w 'UIImageView's? Jeśli tak, znacznie prostszym sposobem dodawania obramowań jest używanie warstw. Np. 'MyImageView.layer.borderColor = [UIColor whiteColor] .CGColor' oraz' myImageView.layer.borderWidth = 2.f' Będziesz musiał dodać strukturę QuartzCore do swojego celu, oraz '#import 'w plikach .m przy użyciu warstw. – bobnoble

+2

Nie chcę kwadratowego cienia ani obramowania, chcę, aby był taki sam, jak ten obraz. – lavoy

Odpowiedz

-2

Można to zrobić na kilka sposobów. Zrób to wszystko w metodzie init metody niestandardowego podglądu podrzędnego. Najpierw ustaw kolor ramki. Oto sposób można go ustawić:

borderColor = [UIColor greenColor]; 

i

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

Następny przeznaczyć UIBezierPath jak

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

i ostatni, nadpisać metodę drawRect jak

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

Powinno działać. Szczęśliwe kodowanie!