2017-01-04 11 views
-1

enter image description hereCollectionview edgeInsetsエラー

どうすればよいですか?私はただ1つの行のエッジを変更したい。

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { 

    if indexPath.row == 8{ 
     return UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0) 
    } 
    return UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0) 
} 
+0

sectionにアクセスする必要があります。したがって、 'section == 3'である必要があります –

+0

メソッドで指定されたパラメータはsectionであり、indexPathではありません。 – Larme

答えて

1

collectionView:layout:insetForSectionAt:機能は、細胞のインセットを設定しませんが、セクションのために細胞がでている。あなたはindexPath.rowを使用したくないので、それはその機能には無関係であるため、doesnのため存在しない。この関数には、すべてsectionというパラメータがあります。

パラメータsectionには、投稿した他の機能のindexPath.sectionに対応する値が含まれます。

+0

私はあなたを理解していますが、私は行にアクセスする必要があります。すでにコレクションビューのセクションは1つだけです。 –

+0

特定の行のインセットを変更したい場合、 'insetForSectionAt'関数は間違ったアプローチです。あなたは、セクションでインセットを完全に削除し、代わりに他のアイテムサイズのインセットを差し引くことを検討しましたか? –