Intereting Posts
Swift – Воспроизведение аудиофайла и Itunes Music одновременно Создайте и используйте Enum в Objective-C Приложение текстового чата с использованием программирования сокетов в SDK для iOS Как искать внутри словаря в Swift Обнаружение событий пользовательского интерфейса iOS в программно созданных элементах управления Как динамически изменять высоту TextView до порога, а затем разрешить прокрутку? Как позволить iPhone генерировать звук определенной частоты и амплитуды? найти оригинальный идентификатор приложения – для приложения Apple iOS UIButton не работает / Clickable в UIScrollView Как получить доступ к API-интерфейсу iOS в приложении Adobe Air iOS? Как NSJSONSerializer определяет кодировку данных? UIImagePickerController Subview Не вызывает делегата. Работает как modalViewController Обнаружение ультрафиолетового излучения с помощью камеры iOS Swift 3 Photo Share Extension с базой данных Firebase не работает после первой отправки Возможно ли воспроизводить несколько клипов с помощью presentMoviePlayerViewControllerAnimated?

Установите размер коллекции viewview, равный содержимому

Я создал коллекциюViewCell, которая содержит imageView и ярлык. Однако метка установлена ​​в sizeToFit, поэтому она будет изменяться в соответствии с содержимым. Проблема в том, что я не могу установить размер collectionVieCell в размер содержимого внутри ячейки. вот мой код ниже:

введите описание изображения здесь

Пользовательская ячейка

class BrowseCell: UICollectionViewCell { @IBOutlet var mainImageView:UIImageView? @IBOutlet var titleLabel:UILabel? override init(frame: CGRect) { super.init(frame: CGRect()) self.backgroundColor = UIColor.whiteColor() titleLabel?.numberOfLines = 0 titleLabel?.sizeToFit() self.contentView.autoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } } 

collectionView методы делегата

  func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { return 1 } func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 10 } func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCellWithReuseIdentifier("ItemCell", forIndexPath: indexPath) as! BrowseCell cell.titleLabel?.text = testText return cell } // MARK: WaterfallLayoutDelegate func collectionView(collectionView: UICollectionView, layout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { return CGSizeMake(140, 150) } func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView { var reusableView: UICollectionReusableView? = nil return reusableView! } 

Я не думаю, что вы можете изменить размер ячейки после загрузки, вы можете попытаться сделать такую ​​же методологию, как описанную ниже.

Вы можете попытаться получить ячейку по пути индекса и получить ширину метки.

Вы также можете поместить весь текст, который хотите загрузить в массиве и задать ширину в соответствии с количеством символов.

 func collectionView(collectionView: UICollectionView, layout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { let flickrPhoto = photoForIndexPath(indexPath) //2 if var size = flickrPhoto.thumbnail?.size { size.width += 10 size.height += 10 return size } return CGSize(width: 100, height: 100) }