Seçili olduğunda tableviewcell'in içeriğini canlandırmaya çalışıyorum ama sorun yaşıyorum. DidSelectRowAtIndexPath içinde animatewithduration'ı çalıştıramayacağınız bazı yerleri okudum ya da en azından sizin yaptığınız gibi hareket etmiyor. Aşağıda sahip olduğum kodda durum böyle görünüyor, görünüm hareket ediyor ama animasyon vermiyor.Swift - TableView Hücresi Seçildiğinde Animasyon Yapılıyor (didSelectRowAtIndexPath)
Seçimi izlemek için hiçbir şey yapmamak için willDisplayCell'e mantığı dahil etmeyi denedim ve birileri bana uygun çözümü bulabiliyorsa sevinirim. arama:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let currentCellDescriptor = getCellDescriptorForIndexPath(indexPath)
let cell = tableView.dequeueReusableCellWithIdentifier(currentCellDescriptor["cellIdentifier"] as! String, forIndexPath: indexPath) as! CustomCell
let indexOfTappedRow = visibleRowsPerSection[indexPath.section][indexPath.row]
if cellDescriptors[indexPath.section][indexOfTappedRow]["isExpandable"] as! Bool == true {
if cellDescriptors[indexPath.section][indexOfTappedRow]["isExpanded"] as! Bool == false {
// INTERESTING BIT: Animates cell contents to Right
if currentCellDescriptor["cellIdentifier"] as! String == "CellHeader" {
UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 12, options: .CurveLinear, animations: {
cell.headerTitleLeftConstraint.priority = 999
cell.headerTitleRightConstraint.priority = 1
cell.layoutIfNeeded()
}, completion: nil)
}
} else if cellDescriptors[indexPath.section][indexOfTappedRow]["isExpanded"] as! Bool == true {
// MARK: Animates cell contents back to left
if currentCellDescriptor["cellIdentifier"] as! String == "CellHeader" {
UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 12, options: .CurveLinear, animations: {
cell.headerTitleLeftConstraint.priority = 1
cell.headerTitleRightConstraint.priority = 999
cell.layoutIfNeeded()
}, completion: nil)
}
}
Neden izin' kullandıkları cep = tableView.dequeueReusableCellWithIdentifier (currentCellDescriptor [ "cellIdentifier"] dize, forIndexPath olarak: indexPath!) Olarak! CustomCell 'didSelectRowAtIndexPath' içinde? – MrDank
Bay Vader, çünkü tüm hücre verilerimi içeren bir plistim var. Bu şekilde çok daha kolay, çünkü birden çok çökebilir hücre seviyesine sahibim. –