2017-09-07 12 views
0

クラスファイル内のUICollectionViewCellのサイズを変更するにはどうすればよいですか?カスタムUICollectionViewCellクラス:Swift 3の高さを変更する方法

は、ここに私のコード(あるいは、むしろ、関連する機能を持つ私のコードの抜粋)です:

class FeedCell: UICollectionViewCell { 

func resizeToText(text: String) { 

    self.backgroundColor = UIColor.black 

    UIView.animate(withDuration: 0.15, animations: { 

     let oldSize = self.feedTextView.frame.size 
     var newSize = estimatedFrameForText(text: text, contentViewWidth: oldSize.width, maxSize: 500, font: self.feedTextView.font!, fontSize: self.feedTextView.font!.pointSize) 

     newSize.width = oldSize.width 

     self.feedTextView.frame.size = newSize 

     let heightDiff = oldSize.height - newSize.height 



     self.feedImageView.frame.origin.y -= heightDiff 

     self.mainView.frame.size.height -= heightDiff 

     // I'm changing the cells size but it doesn't change :(
     self.contentView.frame.size.height -= heightDiff 


     let oldSize2 = self.feedTextView.frame.size 
     let newSize2 = self.feedTextView.contentSize 

     self.feedTextView.frame.size = self.feedTextView.contentSize 

     let diff = oldSize2.height - newSize2.height 

     self.feedImageView.frame.origin.y -= diff 

     self.mainView.frame.size.height -= diff 

     // here again! 
     self.contentView.frame.size.height -= diff 

     self.mainView.dropShadowFeed(scale: true) 

    }) 

} 

}

私もself.frame.size.heightを試みたが、それはしませんいずれかの作業。

目標は、セルがフィード内にあり、手動でそれが表示されているテキストのサイズを変更することです。これをプログラムでどのように行うのですか?あなたはcollectionviewcellのフレームを設定したい場合は、このデリゲートの機能でそれを設定する必要が

(CGSize)collectionView:(UICollectionView *)collectionView 
       layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath; 

答えて

1

UICollectionViewCellのフレームは、以下のデリゲートによって決定されます。もう1つの選択肢は、「動的セルサイズ」を使用することです。

関連する問題