2015-10-03 2 views
0

Я хочу сделать табличное представление с кнопкой в ​​верхнем углу. Я хочу, чтобы кнопка добавила еще одну строку в таблицу, поэтому вы можете добавить изображение в ячейку или текст. У меня есть поиск через Интернет, но я не нашел ответа.Добавление строк в tableview с помощью кнопки

Вот исходный код:

import UIKit 

class TableViewController: UITableViewController { 

    var imageArray = ["1","2","3","4","5","6","7"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

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

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cell = tableView.dequeueReusableCellWithIdentifier("Reccept") as UITableViewCell! 

     let imageView = cell.viewWithTag(2) as! UIImageView! 
     imageView.image = UIImage(named: imageArray[indexPath.row]) 

     return cell 

    } 

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return imageArray.count 


    } 


} 
+0

Что вы пытаетесь, где действие кнопки? –

ответ

7

Вместо перезагрузки Tableview, вы должны использовать beginUpdates() и endUpdates() для tableview.It было бы гораздо лучше подход ..

Прежде всего добавить данные в вашем Tableview массиве на кнопку нажмите

Yourarray.append("image data") 

Затем обновите таблицу и вставить новую строку

// Update Table Data 
    tblname.beginUpdates() 
    tblname.insertRowsAtIndexPaths([ 
     NSIndexPath(forRow: Yourarray.count-1, inSection: 0) 
     ], withRowAnimation: .Automatic) 
    tblname.endUpdates() 
+0

Спасибо, где находится «reload tableview»? А также «tableview.it». Спасибо за всю помощь :) –

+0

Вам не нужно перезагружать табличное представление, потому что начальные и конечные обновления просто перезагружают одну ячейку. Нет необходимости перезагружать всю таблицу .... :) –

0

Попробуйте это,

  1. Изменить ваш imageArray изменяемым потому массив, который может добавить/обновить ваш массив
  2. Обновить Ваше изображение в imageArray при нажатии кнопки
  3. Перезагрузите настольный режим при нажатии кнопки

EX:

var imageArray:NSMutableArray=NSMutableArray() 

@IBAction func buttonaction(sender:AnyObject) 
{ 
    imageArray.addObject("Your image data") 
    your_tableView.reloadData() 
} 
+0

Если у вас есть сомнения, pls ref: http://stackoverflow.com/questions/32799098/how-to-fill-a-table-view-in-swift/32799664#32799664 –

+0

вам не нужен изменяемый массив. вы можете добавить прямо в swift –

+0

@William, да, вы правы. Спасибо 'imageArray.append ("your_image_data")' –

1
extend array by inserting the upcoming value suppose you have 
var array: [String] = ["Iphone4", "Iphone5", "Iphone6"] 
//all the table functions here which are boiler plate// 
then 
var newValue = textbox.text 
array.append = newValue 
tablewview.reloadData() 
Смежные вопросы