2017-07-15 3 views
0

J'utilise xib pour créer une bulle de discussion tableViewCell, mais j'utilise la mise en page automatique pour définir les contraintes.
Il montre mon texte hors de portée que je saisis.
Et je ne veux pas non plus réduire le texte.
Label afficher hors de ma gamme de TableViewCell personnalisé et définir la mise en page automatique par swift

![constrain ![out of range

Et j'ajoute également Textlabel gauche Contraindre, il est autre type que je veux.
Je ne veux pas afficher la zone vide de la bulle de discussion comme la dernière image.
Que dois-je faire à propos de cette situation?

![add left constrain ![new constrain like this

Mise à jour:

class ChatMyTextTableViewCell: UITableViewCell { 

@IBOutlet weak var myImageView: UIImageView! 
@IBOutlet weak var myTextLabel: PaddingLabel! 
@IBOutlet weak var myDateLabel: UILabel! 
@IBOutlet weak var labelWidthConstraint: NSLayoutConstraint! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    self.backgroundColor = defaultBackgroundColor 

    myImageView.layer.masksToBounds = true 
    myImageView.layer.cornerRadius = defaultIconRadius 

    myTextLabel.backgroundColor = defaultChatGreenBubbleColor 
    myTextLabel.layer.masksToBounds = true 
    myTextLabel.layer.cornerRadius = defaultButtonRadius 

    myDateLabel.textColor = defaultChatTimeColor 
} 

override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

func loadMessage(_ message:Message) { 

    labelWidthConstraint.constant = UIScreen.main.bounds.size.width - 120 
    myTextLabel.text = message.content 
    myTextLabel.autoresizingMask = [.flexibleWidth,.flexibleHeight] 

    myDateLabel.text = convertToChatDate(date: message.datetime) 
} 
} 

Répondre

0

vous créez la largeur de l'étiquette Constraint IBOutlet

Objectvice-C:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *msgWidthConst; 

puis à cellForRowAtIndexPath:

cell.msgWidthConst.constant=[UIScreen mainScreen].bounds.size.width-80; 
cell.msg.text="text"; 
cell.msg.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

swift3:

@IBOutlet var labelWidthConstraint: NSLayoutConstraint! 

puis à cellForRowAt:

cell.labelWidthConstraint.constant = UIScreen.main.bounds.size.width-80 
cell.msg.text = "text"; 
cell.msg.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
+0

bonjour, j'utilise vos conseils, cela ne fonctionne pas pour moi. Je mets à jour mon code de cellule. Merci. –

+0

@tolerate_Me_Thx cela fonctionne. vérifier cette démo https://github.com/vikashkumar2804/tableViewDemo.git –

+0

ok, merci, j'essaie de penser à ce qui ne va pas chez moi. –