提前为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()
})
}
}