2016-12-16 7 views
0

Я использую tableview для Chat ViewController. Мне нужен размер, чтобы он соответствовал textView. Высота и ширина. Но я не могу сделать это с обоими параметрами.Текстовый вид в ячейке с автоматическим размером

Это первое ограничение времени, и оно выглядит как this. И это второе ограничение времени, и это выглядит как this.

Это код MyProfile Cell.

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if messages[indexPath.row].image != nil { 
     tableView.rowHeight = 200 
     if !messages[indexPath.row].owner! { 
      let cell = self.chatTableView.dequeueReusableCellWithIdentifier("chatImageCell", forIndexPath: indexPath) as! ChatImageTableViewCell 
      cell.imageV.image = messages[indexPath.row].image 
      let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tappedAtImage(_:))) 
      cell.imageV.addGestureRecognizer(tapGesture) 
      cell.imageV.userInteractionEnabled = true 
      cell.transform = CGAffineTransformMakeRotation(CGFloat(M_PI)) 
      return cell 
     } else { 
      let cell = self.chatTableView.dequeueReusableCellWithIdentifier("chatImageCellEnemy", forIndexPath: indexPath) as! ChatImageTableViewCell 
      cell.imageV.image = messages[indexPath.row].image 
      let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tappedAtImage(_:))) 
      cell.imageV.addGestureRecognizer(tapGesture) 
      cell.imageV.userInteractionEnabled = true 
      cell.transform = CGAffineTransformMakeRotation(CGFloat(M_PI)) 
      return cell 
     } 
    } else if messages[indexPath.row].owner! { 
     tableView.rowHeight = UITableViewAutomaticDimension 
     let cell = self.chatTableView.dequeueReusableCellWithIdentifier("mymessageCell", forIndexPath: indexPath) as! MyChatTableViewCell 
     cell.transform = CGAffineTransformMakeRotation(CGFloat(M_PI)) 

     cell.textView.text = messages[indexPath.row].text! 
     cell.textView.layer.cornerRadius = 8 
     cell.textView.layer.masksToBounds = true 
     cell.textView.textAlignment = .Right 
     cell.textView.textColor = .whiteColor() 
     cell.textView.sizeToFit() 
     cell.textView.layoutIfNeeded() 


     let unix = NSTimeInterval(messages[indexPath.row].unixDate!) 
     let messageDate = NSDate(timeIntervalSince1970: unix!) 
     cell.timeLabel.text = timeAgoSinceDate(messageDate, numericDates: true) 

     return cell 

    } else { 
     let cell = self.chatTableView.dequeueReusableCellWithIdentifier("messageCell", forIndexPath: indexPath) as! ChatTableViewCell 
     tableView.rowHeight = UITableViewAutomaticDimension 
     cell.transform = CGAffineTransformMakeRotation(CGFloat(M_PI)) 

     cell.textView.text = messages[indexPath.row].text! 
     cell.textView.layer.cornerRadius = 8 
     cell.textView.layer.masksToBounds = true 
     cell.textView.textColor = .blackColor() 
     cell.textView.sizeToFit() 
     cell.textView.layoutIfNeeded() 

     let unix = NSTimeInterval(messages[indexPath.row].unixDate!) 
     let messageDate = NSDate(timeIntervalSince1970: unix!) 
     cell.timeLabel.text = timeAgoSinceDate(messageDate, numericDates: true) 

     return cell 
    } 
} 

Спасибо!

ответ

0

Using Auto Layout in UITableView for dynamic cell layouts & variable row heights

Читать этот блог, сказочный ответ дан там. Надеюсь, это поможет вам, и если я не позволю, я поеду с вашей работой с кодом.

+0

Спасибо за ответ, но я не понял точно, что я сделал не так. Не могли бы вы помочь мне с кодом? – coolfrut

+0

Какая проблема на самом деле вы сталкиваетесь, изображение, которое вы добавили в свои вопросы, с правой стороны изображения, я вижу результат, он выглядит правильно, но ваш код нуждается в значительной коррекции или, возможно, это ваша потребность, поэтому вы добавляете все вещи , для информации, что такое 'messages []'. –

+0

сообщения - это массив struct Message, поэтому сообщение: struct Message { var text: String? var unixDate: String? статус: Int? var владелец: Bool? var id: String? var image: UIImage? } – coolfrut

 Смежные вопросы

  • Нет связанных вопросов^_^