あなたのUICollectionviewヘッダに検索バーを追加することができます。
これは、プログラム
lazy var searchBar : UISearchBar = {
let s = UISearchBar()
s.placeholder = "Search Timeline"
s.delegate = self
s.tintColor = .white
s.barTintColor = // color you like
s.barStyle = .default
s.sizeToFit()
return s
}()
次は、あなたのビューでヘッダビューを登録ロードでした検索バーを作成します。
collectionView?.register(UICollectionViewCell.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "headerCellId")
オーバーライドあなたのヘッダがになりたいの高さを定義するには、以下の方法。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
return CGSize(width: view.frame.width, height: 40)
}
最後に、全体のヘッダビューに合うように制約を定義、UICollectionviewヘッダに検索バーを追加します。
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
let header = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "headerCellId", for: indexPath)
header.addSubview(searchBar)
searchBar.translatesAutoresizingMaskIntoConstraints = false
searchBar.leftAnchor.constraint(equalTo: header.leftAnchor).isActive = true
searchBar.rightAnchor.constraint(equalTo: header.rightAnchor).isActive = true
searchBar.topAnchor.constraint(equalTo: header.topAnchor).isActive = true
searchBar.bottomAnchor.constraint(equalTo: header.bottomAnchor).isActive = true
return header
}
どのようなUIViewControllerを検索コントローラに供給しますか? – jhaywoo8
@ jhaywoo8 uは、setupSearchBar()関数内でsearchBar.sizeToFit()を追加しようとしている可能性があります。 –