突出和不突出UIView

时间:2018-02-01 03:56:41

标签: ios swift uiview

我想创建一个在触摸时会改变UIView背景颜色的函数,当选择另一个UIView时,它会将原来点击的UIView颜色改回白色。此函数是UIView子类的一部分。下面的功能改变了背景颜色,但我正在努力改变“离开”的背景颜色。 UIView回到白色。

-X

2 个答案:

答案 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
        }
    }

故事板:

使用已分配按钮标记

enter image description here