如何将文字添加到tableViewCell
?我拖了一个textfield
和button
,然后在它们下方添加,设置tableView
和tableviewCell
。该单元的标识符是" Cell"。这是我到目前为止所做的代码。理想情况下,我想将textfield
内部输入的文字添加到单元格中,这样,例如,如果我添加我的名字,它就会被添加,如果下一个人添加了她的名字,她的名字也会出现在细胞。
@IBOutlet weak var myTableView: UITableView!
@IBOutlet weak var textField: UITextField!
var stringArray = [String]()
@IBOutlet weak var AddBUtton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
textField.delegate = self
}
func textFieldDidBeginEditing(textField: UITextField) {
}
func textFieldDidEndEditing(textField: UITextField) {
}
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
return true
}
func textFieldShouldClear(textField: UITextField) -> Bool {
return true
}
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
return true
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "Cell"
let cell = self.myTableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! UITableViewCell
return cell
}
答案 0 :(得分:1)
尝试设置UITableViewCell的textLabel
func textFieldShouldReturn(textField: UITextField) -> Bool {
stringArray.append(textField.text)
textField.text = nil
textField.resignFirstResponder()
table.reloadData() // if possible just reload or insert only the cell
return true
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "Cell"
let cell = self.myTableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! UITableViewCell
cell.textLabel.text = stringArray[indexPath.row]
return cell
}
答案 1 :(得分:0)
您可以创建一个继承自UITableViewCell
的自定义UITableViewCell
类。从那里,您可以添加一个变量来存储从textfield
获得的任何文本。
之后,您可以将该单元格用作cellForRowAtIndexPath
方法中的新单元格。
答案 2 :(得分:0)
在自定义UITableViewCell中尝试this control。每次在文本框中输入名称时,将该名称添加到此控件的数据源,以便下次在建议列表中显示。您可以轻松地在用户输入时过滤文本(如果需要)。
答案 3 :(得分:0)
尝试做这样的事情:
@IBOutlet weak var text: UITextField!
@IBOutlet weak var button: UIButton!
@IBOutlet weak var tableView: UITableView!
var name:NSMutableArray = NSMutableArray();
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.tableview.delegate = self;
self.tableView.dataSource = self;
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func buttonClicked(sender: AnyObject) {
if(self.text.text == ""){
let alert = UIAlertController(title: "Alert", message: "Enter a name", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil);
}
self.name.addObject(self.text.text!)
self.text.text = "";
self.tableView.reloadData();
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "Cell";
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier);
if(cell == nil){
cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier);
}
cell?.textLabel?.text = self.name[indexPath.row] as? String
return cell!;
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.name.count;
}