0

J'utilise exactement la même configuration de cellule à partir d'un UICollectionView mais cette fois-ci à l'intérieur d'un UITableView, la raison en est que j'utilise des en-têtes rétractables, il doit donc être UITableView. Le code sera à peu près le même, à part le type sera UITableViewCell au lieu d'un UICollectionViewCell et les fichiers xib seront différents. Pourrais-je en quelque sorte rendre ce code réutilisable pour un UITableViewCell au lieu de copier-coller?Comment puis-je utiliser le même code pour un UICollectionViewCell à l'intérieur d'un UITableView?

class LoggedExerciseCell: UICollectionViewCell { 

// MARK: - IBOutlets 
@IBOutlet var cell: UICollectionViewCell! 
@IBOutlet var loggedSetTableView: LoggedSetsTableView! 
@IBOutlet weak var exerciseName: UILabel! 
@IBOutlet weak var exerciseCount: UILabel! 
@IBOutlet weak var icon: UIImageView! 
@IBOutlet weak var resistanceType: UILabel! 
@IBOutlet weak var repetitionType: UILabel! 

// MARK: - Object Lifecycle 
override init(frame: CGRect) { 
    super.init(frame: frame) 
    commonInit() 
} 

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
    commonInit() 
} 

// MARK: - Configure Cell 
func configure(_ exercise: LoggedExerciseViewModelView) { 
    self.exerciseName.text = exercise.exerciseName 
    self.icon.image = UIImage(named: exercise.icon) 
    self.resistanceType.text = exercise.resistanceType 
    self.repetitionType.text = exercise.repetitionType 
    self.loggedSetTableView.loggedExerciseViewModel = exercise 
} 
} 

// MARK: - CommonInit 
private extension LoggedExerciseCell { 
func commonInit() { 
    Bundle.main.loadNibNamed("LoggedExerciseCell", owner: self, options: nil) 
    cell.frame = self.bounds 
    addSubview(cell) 
    configureViews() 
} 
} 

// MARK: - ConfigureViews 
private extension LoggedExerciseCell { 
func configureViews() { 
    configureIconImageView() 
} 

func configureIconImageView() { 
    icon.setCircularImageViewWithBorder(borderWidth: 1.2, withBorderColor: UIColor.darkBlue().cgColor) 
} 
} 
+0

Vous pouvez utiliser des codes similaires, mais pas les mêmes codes, que la classe cellulaire est pas le même, et les délégués sont différents. – Raptor

+0

Suivez ce lien très utile https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell-in-swift/ –

+0

Je pense que vous pouvez créer des en-têtes extensibles dans UICollectionView. Essayez celui-ci: https://stackoverflow.com/questions/32046292/uicollectionview-header-change-height-in-ibaction – danieltmbr

Répondre