所有人,
我有一个图像,然后我把它显示在屏幕上,然后我去一个函数模糊图像。然后我运行另一个函数来添加一个框。但它没有显示模糊和框,这是因为addSubView和insertSubView-我想。基本上我不能把模糊和框都放在视图上。如果我取消对addBox的注释,它不会显示模糊。有谁能帮助我理解addSubView和InsertSubView(array)。
这是我的代码:

class ViewController: UIViewController {
    var Box : UIView?


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.


        let bananaImage : UIImage = UIImage(named: "edify-backgound.png")
        var imageV : UIImageView = UIImageView(image: bananaImage)
        imageV.frame = CGRectMake(0, 0, bananaImage.size.width, bananaImage.size.height)
        imageV.center = self.view.center
        self.view.addSubview(imageV)
        blur()
        //addBox(CGRectMake(200, 300, 30, 30))

    }

    func addBox(location: CGRect)
    {
        let newBox = UIView(frame: location)
        newBox.backgroundColor = UIColor.clearColor()
        self.view.insertSubview(newBox, atIndex: 1)
        Box = newBox
    }

    func blur()
    {
        var blur = UIVisualEffectView(effect: UIBlurEffect(style: .Light)) as UIVisualEffectView
        blur.frame = self.view.frame
        self.view.addSubview(blur)
    }

最佳答案

问题的一部分是你无法知道addBox是否在做任何事情。这是您的代码:

    let newBox = UIView(frame: location)
    newBox.backgroundColor = UIColor.clearColor()
    self.view.insertSubview(newBox, atIndex: 1)

只有清晰背景色的视图是完全不可见的。所以你什么也看不到,正如福尔摩斯所说,这正是你所期望看到的。

10-01 07:44