带有自定义tableViewCell.xib的Swift PickerView

时间:2017-05-15 21:57:19

标签: ios swift custom-cell pickerview

我正在使用swift,我陷入了与自定义TableViewCell.xib创建UIPickerView连接的困境。我想要的功能如下:当我按下开关按钮时,会出现一个pickerView,让我选择一个月份而不是“选择月份”标签。我真的不明白我应该在哪里创建网点。

Cell Xib

Main StoryBoard

class TableViewCell: UITableViewCell {

@IBOutlet weak var leftImage: UIImageView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var rightImage: UIImageView!



override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

func commonInit(_ imageName1: String, _ imageName2: String, text: String){
    leftImage.image = UIImage(named: imageName1)
    rightImage.image = UIImage(named: imageName2)
    label.text = text
}

}

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {


let textData = ["Select Month"]

let datePicker = UIDatePicker()

@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
    super.viewDidLoad()

    self.title = "UiTableView"

    tableView.delegate = self
    tableView.dataSource = self

    let nibName = UINib(nibName: "TableViewCell", bundle: nil)
    tableView.register(nibName, forCellReuseIdentifier: "tableViewCell")
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
   return textData.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "tableViewCell", for: indexPath) as! TableViewCell
    cell.commonInit("facebook", "twitter", text: textData[indexPath.item])
    return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 170

}

func createDatePicker(){
    let toolBar = UIToolbar()
    toolBar.sizeToFit()

    let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: nil)
    toolBar.setItems([doneButton], animated: false)


}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

1 个答案:

答案 0 :(得分:0)

打开Cell Xib文件,然后从菜单,视图> Assistand Editor> Show Assistant Editor中选择。打开Assistant Editor后,您可以打开TableViewCell类。控制从“界面”构建器中的XIB中的3个控件拖动到文件中的相应条目。一旦超过@IBOutlet弱变量leftImage:UIImageView!等条目,它就会突出显示。释放鼠标,将建立连接。

实际上,不首先在类中输入具有插座声明的行更容易一些。在这种情况下,当您从ID控制拖动时,将鼠标放在空行上会出现一个对话框,您可以在其中声明插座。它同时创建连接。