4 shadow uiviewcontroller uiview ios swift
我有一个ViewController,在该控制器中有两个UIViews.
我想在第二个UIView上显示的第一个UIView阴影的底部添加.
first UIView
-------------
<- shadow here
secondUIView
Run Code Online (Sandbox Code Playgroud)
但是,当我只是添加这个代码时,它无法正常工作.
firstView.layer.masksToBounds = true
firstView.layer.shadowOffset = CGSizeMake(0,5)
firstView.layer.shadowOpacity = 0.5
firstView.layer.shadowPath = UIBezierPath(rect: firstView.bounds).CGPath
Run Code Online (Sandbox Code Playgroud)
小智 15
如果设置maskToBounds为false,则应显示阴影.
firstView.layer.masksToBounds = false
Run Code Online (Sandbox Code Playgroud)
如果masksToBounds属性是true,则视图边界之外的任何内容都将被剪切到这些边界.
如果你有两个视图view1,view2并且view2就在下面,view1它可能会view2覆盖阴影view1.在view2以后添加为子视图时会发生这种情况view1.
在某些时候view1添加view2或调用后添加为子视图[superview bringSubviewToFront:view1].
斯威夫特 4.2
extension UIView {
public func addShadowToView(shadow_color: UIColor,offset: CGSize,shadow_radius: CGFloat,shadow_opacity: Float,corner_radius: CGFloat) {
self.layer.shadowColor = shadow_color.cgColor
self.layer.shadowOpacity = shadow_opacity
self.layer.shadowOffset = offset
self.layer.shadowRadius = shadow_radius
self.layer.cornerRadius = corner_radius
}
}
Run Code Online (Sandbox Code Playgroud)
将该函数称为:
firstView.addShadowToView(shadow_color: UIColor.black, offset: CGSize(width: 0, height: 5), shadow_radius: 5.0, shadow_opacity: 0.5, corner_radius: 0.0)
Run Code Online (Sandbox Code Playgroud)
还要确保您的:
查看clipsToBounds属性为 false
firstView.clipsToBounds = false
Run Code Online (Sandbox Code Playgroud)
firstViewbackgroundColor不应该是清晰的颜色
firstView.backgroundColor = UIColor.white
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9338 次 |
| 最近记录: |