2016-07-08 12 views
0

問題は、各セルに異なるUILabelコンテンツがあり、セルの幅を固定し、高さを柔軟にするコンテンツがUILabel hightであることですいくつかのチュートリアルを見ましたが、残念ながらそれは私にとってはうまくいかなかったのです。コレクションビューセルオートレイアウトセルごとに異なる高さ

**編集1

extension TextViewController : UICollectionViewDelegateFlowLayout { 

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

    if collectionView == PagesCollectionView 
    { 
    return CGSizeMake(44.0, 44.0) 
    } 
    else { 

     width = UIScreen.mainScreen().bounds.width - CGFloat(14) 

     return CGSizeMake(width , hight) 
    } 


} 

**私は1つのビューコントローラと2つのコレクションビュー を持っていると私はちょうど柔軟絶頂を持つためにそれらのいずれかが必要:

はへの簡単な方法はありますこれはテーブルビューのように行いますか?

例: -

override func viewDidLoad() { 

super.viewDidLoad() 

self.tableView.estimatedRowHeight = 80 
self.tableView.rowHeight = UITableViewAutomaticDimension } 
+0

チェックをテキストを表示しようとしていることを前提としていますhttp://stackoverflow.com/questions/ 27285258/collectionview-dynamic-cell-height-swift –

+0

Thx、それは良いアプローチですが、私が必要とするものではありません。高さを「ラベル高さ」と同じにします。この楽しいからcell.label.hightにアクセスすることは可能ですか?私はそれにアクセスしようとしましたが、それを行う方法を理解していませんでした。 – user6510240

答えて

0

私はあなたがこのリンクはあなたを助けるかもしれない、細胞内

extension TextViewController : UICollectionViewDelegateFlowLayout { 

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

     if collectionView == PagesCollectionView 
     { 
     return CGSizeMake(44.0, 44.0) 
     } 
     else { 

      let width = UIScreen.mainScreen().bounds.width - CGFloat(14) 
      let text = YourDataSource[indexPath.item].text 
      let size = CGSizeMake(width, 800) // just any arbitrary height to make it compile 
      let options = NSStringDrawingOptions.UsesFontLeading.union(.UsesLineFragmentOrigin) 
      let estimatedFrame = NSString(string: text).boundingRectWithSize(size, options: options, attributes: [NSFontAttributeName:UIFont.systemFontOfSize(16)], context: nil) 
      return CGSizeMake(width , estimatedFrame.height) 
     } 


    } 
関連する問題