Uitable viewcell detailTextLabel not showing up
à l'Aide d'un UITableView
et son UITableViewCell
(s) à Swift. J'ai un problème en montrant l' detailTextLabel
champ UITableViewCell
.
j'ai déjà trouvé ces deux messages utiles, mais je n'ai pas pu obtenir une solution entièrement fonctionnelle: swift detailTextLabel ne s'affiche pas comment configurer Uitable Viewcellstylesubtitle et dequeueReusableCell dans Swift?
voici le code que j'utilise, pertinent à ma question:
override func viewDidLoad() {
super.viewDidLoad()
………….
theTableView = UITableView(frame: tmpFrame)
………….
theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")
theTableView.dataSource = self
theTableView.delegate = self
self.view.addSubview(theTableView)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
cell.backgroundColor = UIColor.clearColor()
cell.textLabel?.text = "THE-TEXT-LABEL"
cell.detailTextLabel?.text = "KIJILO" // This does not show up.
return cell
}
quand j'essaie d'utiliser detailTextLabel
champ UITableViewCell
, il ne s'affiche pas. Chercher sur le net, je comprends que je dois utiliser le style approprié(UITableViewCellStyle
) pour la cellule, mais je ne vois pas comment intégrer ce changement dans mon code. Les exemples que j'ai vus sont basés sur subclassing UITableViewCell
et je suppose que je n'ai pas besoin de sous-classe UITableViewCell
seulement pour utiliser le detailTextLabel
champ. S'il vous plaît dites-moi si je me trompe.
j'ai aussi essayé quelques choses des postes mentionnés ci-dessus, mais rien ne fonctionne comme je vouloir.
1 réponses
Vous avez enregistré le UITableViewCell
theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")
Cela signifie que lorsque vous appelez
tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
un sera créé automatiquement pour vous en utilisant le style Uitable Viewcellstyledefault.
parce que vous voulez un style personnalisé, vous devez faire quelques choses:
Supprimer
theTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "reuseIdentifier")
Remplacer
var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
, avec
var cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier")
if cell == nil {
cell = UITableViewCell(style: .Value1, reuseIdentifier: "reuseIdentifier")
}
ce qui se passe ici est dequeueReusableCellWithIdentifier
renvoie zéro s'il ne peut pas détruire une cellule. Vous pouvez alors générer votre propre cellule en fournissant le style spécifié.
Note: J'ai écrit sans Xcode et je suis nouveau chez Swift donc je m'excuse si ça ne se compile pas.