UICollectionViewCell设置阴影
2014-07-28 09:59
1591 查看
//@mg:masksToBounds必须为NO否者阴影没有效果 // cell.layer.masksToBounds = NO; cell.layer.contentsScale = [UIScreen mainScreen].scale; cell.layer.shadowOpacity = 0.75f; cell.layer.shadowRadius = 4.0f; cell.layer.shadowOffset = CGSizeMake(0,0); cell.layer.shadowPath = [UIBezierPath bezierPathWithRect:cell.bounds].CGPath; //设置缓存 cell.layer.shouldRasterize = YES; //设置抗锯齿边缘 cell.layer.rasterizationScale = [UIScreen mainScreen].scale;
CALayer有一个叫做
conrnerRadius的属性控制着图层角的曲率。它是一个浮点数,默认为0(为0的时候就是直角),但是你可以把它设置成任意值。默认情况下,这个曲率值只影响背景颜色而不影响背景图片或是子图层。不过,如果把
masksToBounds设置成YES的话,图层里面的所有东西都会被截取。
给
shadowOpacity属性一个大于默认值(也就是0)的值,阴影就可以显示在任意图层之下。
shadowOpacity是一个必须在0.0(不可见)和1.0(完全不透明)之间的浮点数。如果设置为1.0,将会显示一个有轻微模糊的黑色阴影稍微在图层之上。若要改动阴影的表现,你可以使用CALayer的另外三个属性:
shadowColor,
shadowOffset和
shadowRadius。
shadowOffset属性控制着阴影的方向和距离。它是一个
CGSize的值,宽度控制这阴影横向的位移,高度控制着纵向的位移。
shadowOffset的默认值是 {0, -3},意即阴影相对于Y轴有3个点的向上位移。
苹果更倾向于用户界面的阴影应该是垂直向下的,所以在iOS把阴影宽度设为0,然后高度设为一个正值不失为一个做法。
shadowRadius属性控制着阴影的模糊度,当它的值是0的时候,阴影就和视图一样有一个非常确定的边界线。当值越来越大的时候,边界线看上去就会越来越模糊和自然。苹果自家的应用设计更偏向于自然的阴影,所以一个非零值再合适不过了。
当阴影和裁剪扯上关系的时候就有一个头疼的限制:阴影通常就是在Layer的边界之外,如果你开启了
masksToBounds属性,所有从图层中突出来的内容都会被才剪掉。
从技术角度来说,这个结果是可以是可以理解的,但确实又不是我们想要的效果。如果你想沿着内容裁切,你需要用到两个图层:一个只画阴影的空的外图层,和一个用
masksToBounds裁剪内容的内图层。
相关文章推荐
- UITableView和UICollectionView的Cell高度的几种设置方式
- 页面间的跳转动画,及给tableView cell设置阴影和圆角
- UICollectionViewCell的设置间距
- iOS UICollectionView cell 0间距问题的解决与分割线的设置
- iOS设置UICollectionViewCell的间距
- 设置UICollectionViewCell选中颜色
- 【UICollectionview】UICollectionViewCell添加阴影书框效果
- [iOS]UICollectionView设置cell之间的间距
- UITableViewCell / UICollectionViewCell用代码设置约束注意事项
- 设置UICollectionViewCell的尺寸/间距等
- 20141211笔记(UIImageView 设置内容的Mode的方法\UICollectionViewCell Custom的方法\ios modal segue code)
- 转载:view 设置阴影+圆角
- iOS 关于tableView cell的分割线的一些设置
- UITableView cell 点击没反应 但却设置了delegate
- UITableView中cell边框和背景设置最佳方案
- 设置UITableView背景透明/监听cell左边的删除按钮的点击事件
- UICollectionViewCell上显示编辑菜单
- UICollectionView cellForItemAtIndexPath not called
- UIView,UIButton,UIImageView等设置圆角,设置阴影,设置边框的方法
- android中TextView的阴影设置