J'utilise des storyboards et une tableview. Chaque cellule de ma vue de table contient un UIView
. Est-il possible de remplacer le IBOutlet
de ce UIView
par programme? Par exemple, faire quelque chose comme ceci:Remplacer la vue IBOutlet par le code
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var videoPlayerView: UIView! /// Really this is a VIMVideoPLayerView (from library below) which inherits from UIView.
func configureCell(with customObject: CustomObject) {
// Set the IBOutlet in code here.
self.videoPlayerView = customObject.videoPlayerView
}
}
Si j'essaie de faire cela, rien ne se passe.
Je sais que beaucoup de gens vont demander: "Pourquoi voulez-vous faire cela?". Ici, ça va: J'utilise cette bibliothèque VIMVideoPlayer et je crée le lecteur réel qui contient un UIView dans le code. Au lieu de réutiliser les joueurs, je les crée tous en même temps dans le code et je veux maintenant les afficher. Cela se résume à des raisons de performance, en reclassant le défilement et le retard sur le thread principal.
REMARQUE: Je travaille déjà sur le code mais je souhaite vraiment utiliser des storyboards. La façon dont je l'ai fait travailler dans le code est en faisant ceci: videoHolderView.addSubview(customObject.videoPlayerView)
Des pensées?
En résumé, vous souhaitez ajouter une sous-vue de lecture vidéo. Vous pouvez l'ajouter vous-même, mais vous devrez également ajouter des contraintes dans le code. Vous pouvez également l'ajouter en tant que sous-vue d'une vue configurée avec des contraintes dans IB. Il n'y a vraiment pas d'autres choix. Ce que j'aimerais savoir, c'est ce qui ne va pas avec l'option subview? La question dit "défilement et retard". Quel est le problème là-bas, et pourquoi ce problème disparaîtrait-il si vous abandonniez le point de vente UIView? – danh