2013-06-13 3 views
1

Я пытаюсь создать свечение только по сторонам прямоугольника. Остальная часть прямоугольника должна быть заполнена прозрачным цветом. Я создаю UIView с CGRect определенного размера, а затем -Свечение вокруг сторон прямоугольника

self.backgroundColor = [UIColor clearColor]; 

    self.layer.borderWidth = 2.0f; 
    self.layer.borderColor = [UIColor colorWithRed:203/255.0 green:1.0 blue:252/255.0 alpha:1.0f].CGColor; 
    self.layer.cornerRadius = 5.0f; 
    int glowSpread = 2; 
    CGRect glowRect = CGRectMake(self.bounds.origin.x-glowSpread, self.bounds.origin.y-glowSpread, self.bounds.size.width+2*glowSpread, self.bounds.size.height+2*glowSpread); 
    self.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:glowRect cornerRadius:5.0].CGPath; 
    self.layer.shadowColor = [UIColor colorWithRed:203/255.0 green:1.0 blue:252/255.0 alpha:1.0f].CGColor; 
    self.layer.shadowOffset = CGSizeMake(0, 0); 
    self.layer.shadowOpacity = 0.5; 
    self.layer.shadowRadius = 2.0f; 

С выше подхода, я получаю свечение вокруг стороны, но все CGRect наполняется цвета тени, которые я не хочу. Любое предложение?

+0

Я попробовал это один раз, и это ближе, чем я получил, поэтому +1 для вопроса. Мое решение закончилось тем, что просто сделало светящийся прямоугольник и применил его, используя resizableImageWithCapInsets. – danh

ответ

0

сделать более сложный путь тени, который не заключен, или просто добавить подуровень нужного цвета.

+0

Можете ли вы рассказать о том, что вы подразумеваете под более сложным путем? Кроме того, как поможет подслой? –

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