Моя цель - просто отобразить уникальное изображение и метку для каждой строки в моем представлении таблицы. Это в настоящее время, где я нахожусь:Как сделать мой табличный вид менее слабым в Swift?
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)-> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! DailyBarCellViewTableViewCell
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0)) {
let data = DailyBarCellViewTableViewCell.Static.data
dispatch_async(dispatch_get_main_queue()) {
cell.barName?.text = data.namesArray[indexPath.row]
}
}
return cell
}
Содержание CellDataDisplayInformation:
struct CellDataDisplayInformation {
var namesArray : [String?] = []
var pictureArray : [UIImage?] = []
init(){
for index in 0...21 {
var data = BarDetails(index: index)
if data.barName != nil && data.barImage != nil {
namesArray.append(data.barName!)
pictureArray.append(data.barImage!)
}
}
}
}
data = CellDataDisplayInformation()
держит массивы [Strings?] И [UIImages?], Которые будут отображаться в каждой соответствующей ячейке. С помощью этого метода пользовательский интерфейс первоначально загружается со всей необходимой информацией в каждой ячейке. Однако, когда я прокручиваю вниз до невидимых ячеек, метки в каждой ячейке перемешиваются в течение 2 секунд, а затем перемещаются в правильные места.
Если я не использую «отправка» и просто сделать:
let data = CellDataDisplayInformation()
cell.barName?.text = data.namesArray[indexPath.row]
Все метки для каждой ячейки остаются постоянными и не тасовать, но вид запаздывает, как я прокручивать над каждой новой ячейки.
Итак, в заключение, как избежать перетасовки и задержки при отображении данных в ячейках таблицы?
Мой DailyBarCellViewTableViewCell класс:
class DailyBarCellViewTableViewCell: UITableViewCell {
// MARK: Properties
struct Static {
static var data = CellDataDisplayInformation()
}
@IBOutlet weak var barName: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
self.barName.text = nil
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
override func prepareForReuse() {
self.barName.text = nil
super.prepareForReuse()
}
}
Трудно определить, что это может привести к этому. Опубликовать реализацию CellDataDisplayInformation. – Sebyddd