我想创建一个在触摸时会改变UIView背景颜色的函数,当选择另一个UIView时,它会将原来点击的UIView颜色改回白色。此函数是UIView子类的一部分。下面的功能改变了背景颜色,但我正在努力改变“离开”的背景颜色。 UIView回到白色。
-X
答案 0 :(得分:1)
您应该在superView
中创建一个变量来管理所选视图
var selectedTag: Int = -1 {
didSet {
if let subView = superView.viewWithTag(oldValue) {
subView.backgroundColor = .white
}
if let selectedView = superView.viewWithTag(selectedTag) {
selectedView.backgroundColor = <your_color>
}
}
}
答案 1 :(得分:0)
我的观看点
@IBOutlet weak var view1: UIView!
@IBOutlet weak var view2: UIView!
@IBOutlet weak var view3: UIView!
我曾使用Button解释您的问题
@IBAction func collectionButton(_ sender: UIButton)
{
switch sender.tag
{
case 1:
self.setGrayBackground(baseView: view1)
self.setbackgroundWhite(baseView: view2)
self.setbackgroundWhite(baseView: view3)
break
case 2:
self.setGrayBackground(baseView: view2)
self.setbackgroundWhite(baseView: view1)
self.setbackgroundWhite(baseView: view3)
break
case 3:
self.setGrayBackground(baseView: view3)
self.setbackgroundWhite(baseView: view2)
self.setbackgroundWhite(baseView: view1)
break
default:
print("Default Case")
}
}
func setbackgroundWhite(baseView:UIView)
{
if baseView.backgroundColor != UIColor.white {
baseView.backgroundColor = UIColor.white
}
}
func setGrayBackground(baseView:UIView)
{
if baseView.backgroundColor != UIColor.lightGray {
baseView.backgroundColor = UIColor.lightGray
}
}
故事板:
使用已分配按钮标记