2017-01-01 8 views
1

Я добавляю тень, как это.Как добавить тень только для правой стороны?

vwVertical=[[UIView alloc] init]; 
[vwVertical setBackgroundColor:[UIColor whiteColor]]; 
vwVertical.translatesAutoresizingMaskIntoConstraints = NO; 
vwVertical.layer.shadowColor=[UIColor colorWithRed:32/255 green:59/255 blue:90/255 alpha:1.0].CGColor; 
vwVertical.layer.shadowOffset=CGSizeMake(5, 0); 
vwVertical.layer.shadowOpacity=0.12; 
vwVertical.layer.shadowRadius=6.5; 
[vwBlock addSubview:vwVertical]; 

Но это добавляет тень на 3 стороны. Как добавить правую сторону. Пожалуйста, помогите мне. Благодаря

ответ

0

Все, что вам нужно сделать, это вставка ограничивающего зрения на top - left - bottom и использовать shadow path.

vwVertical=[[UIView alloc] init]; 
// Create edge insets 
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0, 10, 0, 0); 
// Create rect with inset and view's bounds 
CGRect shadowPathOnlyIncludingRight = UIEdgeInsetsInsetRect(vwVertical.bounds, contentInsets); 
// Apply it on the layer's shadowPath property 
vwVertical.layer.shadowPath = [UIBezierPath bezierPathWithRect:shadowPathOnlyIncludingRight].CGPath; 

[vwVertical setBackgroundColor:[UIColor whiteColor]]; 
vwVertical.translatesAutoresizingMaskIntoConstraints = NO; 
vwVertical.layer.shadowColor=[UIColor colorWithRed:32/255 green:59/255 blue:90/255 alpha:1.0].CGColor; 
vwVertical.layer.shadowOffset=CGSizeMake(5, 0); 
vwVertical.layer.shadowOpacity=0.12; 
vwVertical.layer.shadowRadius=6.5; 
+0

Но на правой стороне отсутствует тень для 10 пикселей сверху и снизу. –

+0

@AlexandreG Я обновил свой ответ. Странно, когда я изначально ответил, я не столкнулся с проблемой, о которой только что сообщалось. – dirtydanee

+0

Но теперь тень не только для правой стороны. Я скопировал приведенный выше код, просто увеличив прозрачность теневого изображения, так что это становится более очевидным для глаз: http://www.goloskok.com/u/image-6UQ1XEYirw.png –