1
コレクションビューのCell .swiftファイル内にコードを記述することで、コレクションビューのスクロールを停止できますか?ユーザーがセル内のボタンをタップした後にスクロールを停止し、ボタンが再び押されたときにスクロールを許可したいと考えています。コントロールのコレクションビューcollectionViewからのスクロールCell
コレクションビューのCell .swiftファイル内にコードを記述することで、コレクションビューのスクロールを停止できますか?ユーザーがセル内のボタンをタップした後にスクロールを停止し、ボタンが再び押されたときにスクロールを許可したいと考えています。コントロールのコレクションビューcollectionViewからのスクロールCell
は、ボタンアクションのcellForItem
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// dequeue cell and assign delegate
var cell: CustomCell?
cell.delegate = self
return cell
}
コール細胞のデリゲート内のセルにあなたのセル
protocol CustomCellDelegate: class {
func cellDidSetScrolling(enabled: Bool)
}
class CustomCell: UICollectionViewCell {
var delegate: CustomCellDelegate?
// ....
}
割り当てデリゲートのカスタムデリゲートを作成します。 enabled
値
func buttonAction() {
button.tag = button.tag == 0 ? 1 : 0 // toggle value
delegate?.cellDidSetScrolling(enabled: button.tag == 1)
}
がViewController
class ViewController: UIViewController, CustomCellDelegate {
func cellDidSetScrolling(enabled: Bool) {
collectionView.isScrollEnabled = enabled
}
}
コーディングハッピーにデリゲートを実装するかを決定するためにbutton.tag
を使用しています!
驚くばかりです。 button.tagが1の場合はどういう意味ですか? – Honey
コードはisScrollEnabledの値を切り替えます。つまり、有効になっている場合はスクロールするとボタンタップで無効になり、無効にすると無効になります。 –
私は別のものを求めています。私が間違っていると私を訂正してください:デフォルトでは、ボタンのタグは '0'に設定されています(つまり、最初の値を与える必要はありません)...それをクリックすると' 1 'それに基づいて 'isScrollEnabled'の決定を下してください...あなたは基本的に、この操作を行うためにタグプロパティを乱用しています... – Honey