配列をUIcollectionview
にロードしています(後で他のデータが追加されます)。コレクションビューアイテムを次のようにランダムに選択します。
var indexpath = Int(arc4random_uniform(UInt32(items.count)-1)
self.collectionview.selectitem(at: **indexpath**, animated:true ,scrollPosition:UICollectionViewScrollPosition)
ここで私は大胆な位置で私にエラーを言っています:
タイプIntの値を予期される引数タイプ 'IndexPath?
indexpath
はSwiftがコレクションデータインデックス(配列インデックス)とは異なるため、この例外を理解できます。しかし、アイテムインデックスをindexpathまたはその他の方法で。
私はiOSの方が新しいので、そのような問題の正しいキーワードを検索するのは得意ではないかもしれません。この要件に対する他の方法については、皆さんからの好意です。
Swift 3 for IndexPath
にUICollectionView
を作成するには
let indexPath = IndexPath(item: 0, section: 0)
使えます
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
Swift 3最新
self.table.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .fade)
Swift 4.1。ここでは、NSIndexPathを取得する関数を作成しました。 NSIndexPathを取得するには、UIView(UIButton、UITextFieldなど)とUICollectionViewオブジェクトを渡すだけです。
func getIndexPathFor(view: UIView, collectionView: UICollectionView) -> NSIndexPath? {
let point = collectionView.convert(view.bounds.Origin, from: view)
let indexPath = collectionView.indexPathForItem(at: point)
return indexPath as NSIndexPath?
}