Layer处理

UIView设置边框阴影时,必须设置一个背景颜色,不然不出来。

  1. UITableView 设置边框阴影

UITableView设置边框阴影时,必须加上下面这句,不然也不会显示
_topTableView.clipsToBounds = NO;
但是设置这句之后,又会出现一个问题,就是无法设置圆角。我是将UITableView添加到一个UIView上,设置UIView的圆角和边框阴影,在设置UITableView的圆角,就OK了。

  1. 控件使用masonry约束 添加layer时 :
    在使用masonry设置view之后发现,设置任意角的圆角都不起作用,_myView都不显示了。
    这是因为在使用了masonry之后,view的frame和bounds都是0,所以在设置圆角就不会起作用。
    使用时,如何使用CAShapeLayer给view画圆角

解决方法:
当设置完控件的约束,需要调用layoutIfNeeded函数进行布局,然后所约束的控件才会按照约束条件,生成当前布局相应的frame和bounds,这样就可以利用这两个属性来进行图片圆角剪裁。

  1. 使用圆角的一些注意事项
    layer 设置圆角: layer.cornerRadius 通过设置这个属性即可。
    当layer只被设置了颜色时 是生效的。 当如果有其他背景图片等 就不会生效了。 此时要 配合 layer.masksToBounds 使用。
    使用了 layer.masksToBounds 会导致 阴影失效。当冲突时:
    可以设置了父view 让它来 负责展示阴影 或者 通过 CAShapeLayer 来添加自定义圆角

你可能感兴趣的:(Layer处理)