Swift uiview shadow仅适用于iphone5

时间:2015-09-15 23:12:51

标签: ios swift

我想在我的uivew下添加一个阴影。它可以在Iphone 5上运行,但是在尝试使用iphone 6 plus时阴影只会被应用到2/3的视图中。

代码:

myView.layer.shadowColor = UIColor.blackColor().CGColor
        myView.layer.shadowOpacity = 1
        myView.layer.shadowRadius = 5
        myView.layer.shadowPath = UIBezierPath(rect: CGRect(x: 0, y: 0, width: myView.frame.width, height: myView.frame.height)).CGPath

视图的限制是:

身高:41

通向superview:0

追踪到超级视图:0

1 个答案:

答案 0 :(得分:0)

你正在布局完成之前应用你的影子@Tommy在评论中提到。

将您的代码从viewDidLoad移至viewDidLayoutSubviews

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var myView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidLayoutSubviews() {
        myView.layer.shadowColor = UIColor.blackColor().CGColor
        myView.layer.shadowOpacity = 1
        myView.layer.shadowRadius = 5
        myView.layer.shadowPath = UIBezierPath(rect: CGRect(x: 0, y: 0, width: myView.frame.width, height: myView.frame.height)).CGPath
    }

另外,您是否在视图上设置了Y约束?我想你会pin将它Superview放在首位。