2013-06-19 2 views
5

У меня есть серия изображений, которые сосредоточены на прозрачном фоне. Я хотел бы добавить белую рамку ко всем, и я мог бы нарисовать ее, если бы у меня был путь границы непрозрачной части изображения. Можно ли это извлечь?UIBezierPath вокруг UIImage с прозрачностью

+0

Вы можете сделать то же самое, добавив тень к слою. [Попробуйте это] (http://stackoverflow.com/a/5428108/2487322) – Idles

+0

Являются ли образы в 'UIImageView'? Если это так, гораздо более простой способ добавить границы - использовать слои. Например, 'myImageView.layer.borderColor = [UIColor whiteColor] .CGColor' и' myImageView.layer.borderWidth = 2.f' Вам нужно будет добавить структуру QuartzCore к вашей цели, а '#import 'в файлах .m с использованием слоев. – bobnoble

+2

Я не хочу квадратную тень или границу, я хочу, чтобы она была той же формы изображения, что и она. – lavoy

ответ

-2

Есть несколько способов, которыми вы можете это сделать. Это все в init метод вашего пользовательского подзаголовка. Сначала вы устанавливаете цвет рамки. Вот как вы можете установить его:

borderColor = [UIColor greenColor]; 

и

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

Следующая выделить UIBezierPath в

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

И наконец, переопределить метод drawRect, как

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

Он должен работать. Счастливое кодирование!

Смежные вопросы