UICollectionView中的动态宽度单元格

时间:2018-12-03 08:20:51

标签: ios swift uicollectionview

enter image description here

我尝试使用 // set the source file //$pageCount = $pdf->setSourceFile("http://localhost/pdf/getpicture.php?fid=2"); $stream = fopen('data:text/plain,' . urlencode("http://localhost/pdf/getPDF.php?fid=2"), 'rb'); //$reader = new SetaPDF_Core_Reader_Stream($stream); $pageCount = $pdf->setSourceFile($stream); 实现标签。但是我必须使用动态标签的长度来设置宽度。我试图消除图片上的空白。我分享一些代码。我用鸟嘴。

谢谢。

UICollectionView

-

layoutFCV.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
let filterCV = UICollectionView(frame: self.view.bounds, collectionViewLayout: layoutFCV)

3 个答案:

答案 0 :(得分:1)

extension ViewController: UICollectionViewDelegateFlowLayout {
     func collectionView(_ collectionView: UICollectionView, layout      collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
     return "String".size(withAttributes: [
       NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: 14)
  ])
  }
 }

答案 1 :(得分:1)

使用此代码:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let text = "Title"
    let width = self.estimatedFrame(text: text, font: UIFont.systemFont(ofSize: 14)).width
    return CGSize(width: width, height: 50.0)
}

func estimatedFrame(text: String, font: UIFont) -> CGRect {
    let size = CGSize(width: 200, height: 1000) // temporary size
    let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
    return NSString(string: text).boundingRect(with: size,
                                               options: options,
                                               attributes: [NSFontAttributeName: font],
                                               context: nil)
}

答案 2 :(得分:0)

首先请确保您在[sum(x[i+t])/width for t in range(-n_neighbors,n_neighbors)]文件中的约束设置正确。我的意思是随着细胞中UICollectionViewCell.xib的生长,细胞本身也应生长。

在获取像元大小之前,应明确设置标题。因此,您的UILabel方法应为:

collectionView(collectionView:, layout:, sizeForItemAt:)