需要实现一个控件周边有阴影的效果,由于以前没弄过,所以记录一下
古田网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
为了实现四周的效果,必须要设置阴影的路径,不然实现不了四周的效果
在iOS中常见的特性中有有阴影,下面我将详细阐述一下关于视图阴影的故事
iOS中阴影的属性是 shadowOpacity 它的默认值是0,只要设置一个大于0的值就会在视图的上面出现阴影的效果,但它的浮点值在0~1之间.
但你会发现其阴影的特点是上面阴影效果最明显,左右也有阴影效果,但是在下面是没有的阴影的,因为系统在设置阴影效果时设置了默认的阴影偏移量,你可以通过另一个属性 shadowOffset 来改变阴影的偏移效果,它的类型值是CGSize类型(当 shadowOffset 的值设为 CGSizeMake(0, 0) 时,四周就都会出现阴影)
改变阴影效果的属性还有一个是 shadowRadius , 它的效果是阴影的半径,其值越大,阴影效果就越明显.
但是当我们在给 imageView 添加阴影效果时也会有效果,但是在当我们在设置视图的圆角时,我们会发现阴影效果就消失了,这很让人头疼,下面我将提供一个解决办法,其实很简单,只要在 ImageView 下面铺一个 view 就可以解决问题了,但要注意的是下面的 view 不要给颜色,要一个透明view,同时设置阴影效果,并且不设置圆角, ImageView 不用设置阴影,但要设置圆角,这样就可以解决问题了.
button 换成需要添加阴影的控件
button.layer.shadowColor = [UIColor blackColor].CGColor;//阴影颜色
button.layer.shadowOffset = CGSizeMake(1, 1);//偏移距离
button.layer.shadowOpacity = 0.5;//不透明度
button.layer.shadowRadius = 5.0;//半径
开发中,设置view等的阴影不成功的原因有以下几种:
1.设置view的clipsToBounds为NO;
2.view的backgroundColor为clearColor
3.layer的shadowOpacity未设置
- (void)addShadowColor {
//添加显示
UIImage *image = [UIImage imageNamed:@"小可爱"]; //IMG_2683.jpg
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.frame = CGRectMake(50, 100, 200, 300);
//添加边框
// CALayer *layer = [imageView layer];
//
// layer.borderColor = [[UIColor redColor] CGColor];
//
// layer.borderWidth = 0.5f;
//添加四个边阴影
// imageView.layer.shadowColor = [UIColor redColor].CGColor;//阴影颜色
// imageView.layer.shadowOffset = CGSizeMake(0, 0);//偏移距离
// imageView.layer.shadowOpacity = 0.5;//不透明度
// imageView.layer.shadowRadius = 10.0;//半径
//添加两个边阴影
imageView.layer.shadowColor = [UIColor blueColor].CGColor;//阴影颜色
imageView.layer.shadowOffset = CGSizeMake(4, 4);//偏移距离
imageView.layer.shadowOpacity = 0.5;//不透明度
imageView.layer.shadowRadius = 2.0;//半径
[self.view addSubview:imageView];
}