run*_*mad 2 uitableview calayer ios
我有一个带UITableView的UIViewController.它位于视图控制器的视图内,四周都有一些填充.我试图从桌面视图和圆角绘制一个阴影,但我无法同时实现这两个.我已尝试使用以下代码并打开和关闭masksToBounds,但将其设置为NO会创建一个非常奇怪的效果,使用阴影滚动并且调用不会在表内进行剪切.
[self.tableView.layer setShadowColor:[UIColor blackColor].CGColor];
[self.tableView.layer setShadowOffset:CGSizeMake(0, 3)];
[self.tableView.layer setShadowOpacity:0.4];
[self.tableView.layer setShadowRadius:3.0f];
[self.tableView.layer setCornerRadius:5.0f];
[self.tableView.layer setShadowPath:[[UIBezierPath bezierPathWithRoundedRect:self.tableView.bounds cornerRadius:5.0f] CGPath]];
Run Code Online (Sandbox Code Playgroud)
我只是用简单的风格绘制UITableView.我试图实现的效果可以在免费的应用程序Transit App中看到,这里是一个电影,你可以看到阴影停留,表甚至有一个向上和向下滚动的面具.
我搜索并搜索过,并且无法根据其他SO答案或在线文章整理解决方案.帮助赞赏.
尝试下面的链接,其中一些是旧的,但你可以得到一些指针.
好的!!我再次尝试并获得了效果,它再次只是一个工作(而不是使用图像),下面是我尝试的
使用与tableview相同的框架创建一个CALayer,给出相同的曲线和全部,在该图层的顶部添加表视图,就是这样.
CALayer *sublayer = [CALayer layer];
sublayer.backgroundColor = [UIColor blueColor].CGColor; // If you dont give this, shadow will not come, dont know why
sublayer.shadowOffset = CGSizeMake(0, 3);
sublayer.shadowRadius = 5.0;
sublayer.shadowColor = [UIColor blackColor].CGColor;
sublayer.shadowOpacity = 1.0;
sublayer.cornerRadius = 5.0;
sublayer.frame = CGRectMake(myTable.frame.origin.x, myTable.frame.origin.y, myTable.frame.size.width, myTable.frame.size.height);
[self.view.layer addSublayer:sublayer];
[self.view.layer addSublayer:myTable.layer];
Run Code Online (Sandbox Code Playgroud)
啊!!由于某种原因,我无法从我的机器,防火墙上传截图;-).我会在家里试试.

-anoop
| 归档时间: |
|
| 查看次数: |
7845 次 |
| 最近记录: |