Я использую Xcode 8 и Swift 3. Я разрабатывал UICollectionView и хотел динамически устанавливать высоту и ширину так, чтобы их можно было получить для некоторых ответов. По пути я получил это решение (правильно или нет - я понятия не имею):Swift 3 Предупреждение в UICollectionViewDelegate
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let Labell : UILabel = UILabel()
Labell.text = self.items[indexPath.item]
let labelTextWidth = Labell.intrinsicContentSize.width
return CGSize(width: labelTextWidth + 20, height: 35)
}
Но этот ответ был быстрым 2,0 А человек, который дал этот ответ утверждает, что она решается один. Я вставил его в Xcode и изменил то, что предложил Xcode.
Теперь здесь я получаю следующее предупреждение:
instance method 'collectionView:layout:sizeForItemAtIndexPath:)' nearly matches optional requirement 'collection(_:willDisplaySupplementaryView:forElement:at:)' of protocol 'UICollectionViewDelegate'
Xcode предлагает мне 2 решение 1) добавить частное впереди Func ключевого слова 2) добавить @nonobjc перед забавным ключевым словом
Я попытался оба решения, и он подавляет предупреждение, но ни одно из вышеизложенных никогда не называется. Я попытался поставить точку останова и много раз пробовал. Если кто-то может вытащить меня из этой ямы.
я получил этот метод функ CollectionView (_ CollectionView: UICollectionView, расположение collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { } –
HTTPS://medium.com/@zonble/your-delegation-methods-might-not-be-called-in-swift-3-c6065ed7b4cd#.hjsujieml см. это –