2016-09-10 4 views
2

У меня есть UICollectionView с Cell, содержащий UITextView. Я хочу, чтобы размер ячейки зависел от высоты TextView (так что прокрутка не нужна, и весь текст всегда отображается). Я пытаюсь это:Коллекция Просмотр Размер ячейки В зависимости от UITextView

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 

    if (indexPath.row < myComments!.count) { 

     if let messageText = myComments![indexPath.row].text { 
      let size = CGSizeMake(self.view.frame.width/2, 100) 
      let options = NSStringDrawingOptions.UsesFontLeading.union(.UsesLineFragmentOrigin) 
      let estimatedFrame = NSString(string: messageText).boundingRectWithSize(size, options: options, attributes: [NSFontAttributeName: UIFont.systemFontOfSize(14)], context: nil) 
      return CGSizeMake(view.frame.width, estimatedFrame.height + 50) 
     } 
    } 
    return CGSizeMake(view.frame.width, 100) 

} 

однако это на самом деле не работает. Иногда высота слишком велика, иногда ее слишком мало, и мне еще нужно прокручивать.

ответ

0

Используйте метод TextView sizeThatFits. Он точно вычисляет размер UITextView.