用于创建选择器

时间:2018-01-27 12:38:33

标签: ios swift uiview subclass

我正在尝试将UIView子类化以创建一个选择框,用户可以在其中选择一系列过滤器(我将最终应用于UITableView)。我创建了一个像这样的自定义类

import UIKit

class FilterView: UIView {

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.addFilterView()
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    var lblFilter = UILabel()
    var butApply = UIButton()

    func addFilterView() {
        backgroundColor = UIColor.blue
        frame = Layout.filterFrame
        self.butApply.frame = CGRect(x: 40, y: 60, width: 60, height: 30)
        self.butApply.setTitle("Apply", for: .normal)
        self.addSubview(butApply)
    }
}

(Layout.filterFrame是一个返回CGRect的结构)

然后在View Controller中使用此子类尝试弹出窗口

let f = FilterView(frame: Layout.filterFrame)

@IBAction func butFilter(_ sender: Any) {
    //f.backgroundColor = UIColor.blue
    //f.frame = Layout.filterFrame
    self.view.addSubview(f)

所有这一切都是因为我得到一个完全没有白色屏幕的白色屏幕。但是,如果我取消注释@IBAction中的行以设置背景颜色和框架,则弹出窗口可以正常工作。是不是可以直接在子类中设置框架和背景等,这样我每次使用它时都不必设置它?一个子类不是一次定义这些东西,所以它们可以在任何地方使用吗?

0 个答案:

没有答案