在我的一个观点中,我正在为视图添加阴影。事实是阴影在左边和左边显示白色空间。右边缘。我想删除这些空格。
这是我的代码:
UIView *myView = [[ISTView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 35)];
myView.backgroundColor = [UIColor greyColor];
[myView.layer setShadowOffset:CGSizeMake(0.0, 5.0)];
[myView.layer setShadowOpacity:0.8];
[myView.layer setShadowRadius:2.0];
[myView.layer setShadowColor:[UIColor blackColor].CGColor];
[self.view addSubview:myView];
[myView release];
这是我的观点o / p:
答案 0 :(得分:2)
如果你想要没有副作用的同质阴影,可以在图形编辑器中绘制它,保存到png并在视图上放置带有可伸缩图像的UIImageView。并且不要忘记将clipToBounds设置为NO。
UIView *myView = [[ISTView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 35)];
myView.backgroundColor = [UIColor greyColor];
myView.clipToBounds = NO;
UIImageView *shadowView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 35, 320, 10)];
shadowView.image = [UIImage imageWithName:@"my-shadow.png"];
[myView addSubview:shadowView];
[shadowView release];
[self.view addSubview:myView];
[myView release];
系统在视图层次上绘制缓存的现有图像比计算图层的阴影要便宜。
答案 1 :(得分:1)
使用shadowPath使阴影大于视图
view.layer.shadowPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, view.frame.size.width+30, view.frame.size.height)].CGPath;
答案 2 :(得分:0)
我能想到并且正在工作的一个解决方案是在X位置和宽度上将视图的帧调整2个像素:
UIView *myView = [[ISTView alloc] initWithFrame:CGRectMake(-2.0, 0.0, 324.0, 35)];
但这不是一种更清洁的做法。如果有人有更好的解决方案,请指导。
答案 3 :(得分:0)
试试这个,删除代码:
[myView.layer setShadowRadius:2.0];