Swift UIView自定义位置



提前为noob问题道歉:

我下面有一个功能,它可以完美地与一个捕捉器配合使用,这个视图覆盖了我在屏幕底部的一个按钮。我如何调整这个功能,使其按原样工作,只在屏幕底部为按钮留出50像素的空间。是否可以使用mainScreen().bounds并在顶部或底部留出一些空间?

func flashColor() {
    if let window = self.view{
        let screenSize: CGRect = UIScreen.mainScreen().bounds
        let v = UIView(frame: screenSize)
        v.backgroundColor = colors[i]
        v.alpha = 1
        if i < 4 {
            i += 1
        } else {
            i = 0
        }
        window.addSubview(v)
        UIView.animateWithDuration(1, animations: {
            v.alpha = 0.0
            }, completion: {(finished:Bool) in
                print(i)
                v.removeFromSuperview()
        })
    }
}

通常,最好避免使用UIScreen.mainScreen().bounds,因为这将返回整个设备屏幕的边界。虽然在分屏多任务处理之前,通常可以假设你的应用程序会占据整个屏幕,但现在情况更长了。您可以使用视图控制器的视图边界。如果你想让一个视图覆盖你的视图控制器的视图,从顶部到底部上方50点,你可以说这样的话:

func flashColor() {
    if let vcView = self.view{
        let viewSize: CGRect = CGRect(x:0.0,y:0.0,width:vcView.bounds.size.width,height:vcView.bounds.size.height - 50.0)
        let v = UIView(frame: viewSize)
        v.backgroundColor = colors[i]
        v.alpha = 1
        if i < 4 {
            i += 1
        } else {
            i = 0
        }
        window.addSubview(v)
        UIView.animateWithDuration(1, animations: {
            v.alpha = 0.0
            }, completion: {(finished:Bool) in
                print(i)
                v.removeFromSuperview()
        })
    }
}

最新更新