2017-05-25 1 views
0

J'ai une fonction qui trouve le nombre d'étoiles à ajouter et à ajouter à la pileview. La pileview est à l'intérieur d'une cellule de tableau et affiche donc la note correcte, qui est récupérée à partir de CoreData. Cependant, la note ne s'affiche pas.Comment ajouter des images à une cellule de vue de table via stackview

la fonction ...

func setRating(entry: Entry, ratingView: UIStackView) -> UIStackView{ 

    for _ in 0..<Int(entry.rating) { 

     let image = UIImage(named:"ratingFilled") 
     let imageView = UIImageView(image: image!) 

     imageView.frame = CGRect(x: 0, y: 0, width: 20, height: 20) 

     NSLayoutConstraint(item: image!, attribute: .height, relatedBy: .equal, toItem: image!, attribute:.width, multiplier: 1.0, constant:0.0).isActive = true 

     ratingView.addArrangedSubview(imageView) 
    } 

    return ratingView 
} 

appel cellulaire Tableview ...

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{ //creates rzeusable cell and assigns cell items 

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell 

    let entry = entries[indexPath.row] 

    cell.nameLabel?.text = entry.restaurantName 

    cell.ratingView = setRating(entry: entry, ratingView: cell.ratingView) 

    return cell 
} 

Répondre

0

Vous devez ajouter une contrainte de largeur, soit chaque imageView ou l'stackView lui-même.

NSLayoutConstraint(item: image!, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 20.0).isActive = true 
NSLayoutConstraint(item: image!, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 20.0).isActive = true 

Assurez-vous également de définir stackView axe horizontal

stackView.axis = .horizontal 
+0

stackview est dans le sens horizontal et je pensais que je l'ai déjà mis cadre imageView à 20 par 20. Après avoir ajouté votre contrainte son ne fonctionne toujours pas vous –

+0

aussi besoin d'ajouter une contrainte de hauteur, vérifiez l'édition –

+0

en ajoutant une contrainte avec le même 2 éléments ne doit pas être, vous devez ajouter une contrainte avec constante comme indiqué ci-dessus. laissez-moi savoir si cela le fait pour vous. –