前言
首先,大家应该知道,在一个view上面,设置了layer.masksToBounds=YES
,意味着view可以有圆角,但是无法显示阴影,若设置layer.masksToBounds=NO
,则无法显示圆角,但是可以显示阴影。
这是个冲突,想要两者共存,在这里教大家一种比较简单的方法(高级的处理方式也有,但笔者觉得在不影响新能的前提下,这种方式是可取的)。
解决方式
想要做成的效果如下图1-1为例子:

而我采取的做法第一步:给view增加个父view,专门用来显示阴影,如下图1-2

第二步,给view设置圆角,如下图1-3:

设置完之后,效果图如下图1-4

文章至此结束,请大家多多指教,共同进步~
关于xib中view设置阴影
我们需要自定义一个属性,可以通过给CALayer分类来增加属性(如果xib中的view需要设置边框颜色,同理也需要增加一个属性,下面类一同给出自定义的阴影颜色和边框颜色)
。
CALayer+FKCategory.h
#import <QuartzCore/QuartzCore.h>
NS_ASSUME_NONNULL_BEGIN
@interface CALayer (FKCategory)
//注意:如果你想设置圆角的同时设置阴影,那你就先设置阴影后设置圆角
@property(nonatomic, strong) UIColor *borderUIColor;
@property(nonatomic, strong) UIColor *shadowUIColor;
@end
NS_ASSUME_NONNULL_END
CALayer+FKCategory.m
#import "CALayer+FKCategory.h"
@implementation CALayer (FKCategory)
- (void)setBorderUIColor:(UIColor *)color
{
self.borderColor = color.CGColor;
}
- (UIColor*)borderUIColor
{
return [UIColor colorWithCGColor:self.borderColor];
}
-(void)setShadowUIColor:(UIColor*)color
{
self.shadowColor = color.CGColor;
}
-(UIColor *)shadowUIColor
{
return [UIColor colorWithCGColor:self.shadowColor];
}
@end
网友评论