gpt4 book ai didi

ios - 在 Collection View 中显示/隐藏顶部行

转载 作者:行者123 更新时间:2023-11-30 12:01:37 25 4
gpt4 key购买 nike

我正在尝试使用 Collection View 构建登录/注册页面我希望能够在用户选择登录段控件时删除前 4 行并缩小 Collection View 我想重新添加这 4 行并相应地调整 Collection View 的大小。我还希望能够在添加/删除这些行时维护用户在电子邮件文本字段中输入的文本。 Main Screen

我尝试在索引路径中使用删除项目,但不知道如何在顶部重新输入它们因此,我尝试使用 .ishidden = true 而不是删除,但重复更改段控制值会导致在文本字段中输入的文本被放置在不同的单元格中。例如,如果我在带有隐藏单元格的登录页面上,并且在电子邮件文本字段中输入“Hello”,然后单击“注册”,则会显示完整的表单,“Hello”是“姓氏”文本字段中的文本,并且它不断出现在不同的文本框中。如果我继续在登录和注册之间切换,则为文本字段。

我面临的另一个问题是当我尝试使登录屏幕如下所示时 Login Screen通过更改collectionView高度约束常量,并为collectionView.contentInset.Top设置一个负值,它确实显示为我想要的样子,但是一旦我选择了Register,它就不会加载完整的表单,这就是它的方式好像。 partial register

我的段控制更改代码如下:

@objc func handleLoginRegisterChange() {
if LoginRegisterSegmentControl.selectedSegmentIndex == 0 {
LoginRegisterButton.setTitle("Login", for: .normal)
//collectionView.reloadData()
collectionView.cellForItem(at: IndexPath(item: 0, section: 0))?.isHidden = true
collectionView.cellForItem(at: IndexPath(item: 1, section: 0))?.isHidden = true
collectionView.cellForItem(at: IndexPath(item: 2, section: 0))?.isHidden = true
collectionView.cellForItem(at: IndexPath(item: 3, section: 0))?.isHidden = true
collectionView.contentInset.top = -160.6
collectionViewHeight.constant = 80
}
else if LoginRegisterSegmentControl.selectedSegmentIndex == 1 {
LoginRegisterButton.setTitle("Register", for: .normal)
collectionView.cellForItem(at: IndexPath(item: 0, section: 0))?.isHidden = false
collectionView.cellForItem(at: IndexPath(item: 1, section: 0))?.isHidden = false
collectionView.cellForItem(at: IndexPath(item: 2, section: 0))?.isHidden = false
collectionView.cellForItem(at: IndexPath(item: 3, section: 0))?.isHidden = false
collectionView.reloadData()
collectionView.contentInset.top = 0
collectionViewHeight.constant = 240
}
}

我的自定义单元格只有一个文本字段

这就是我设置占位符的方式

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let customCell = collectionView.dequeueReusableCell(withReuseIdentifier: customeCellIdentifier, for: indexPath) as! CustomCell
customCell.textField.placeholder = signUpPlaceHolders[indexPath.row]
return customCell
}

signUpPlaceHolder 数组是:

let signUpPlaceHolders = ["First Name", "Last Name", "Company Name", "Phone", "Email", "Password"]

我是 Swift 的初学者,正在尝试找出 Collection View ,我们将非常感谢您的帮助。

最佳答案

我建议检查 Apple 文档中的 UICollectionView 类,然后对于分段控制操作中的示例,您可以在将其声明为 var 后更新数组:

@objc func handleLoginRegisterChange() {
if LoginRegisterSegmentControl.selectedSegmentIndex == 0 {
signUpPlaceHolders = ["Email", "Password"]
collectionViewHeight.constant = 80
} else {
signUpPlaceHolders = ["First Name", "Last Name", "Company Name", "Phone", "Email", "Password"]
collectionViewHeight.constant = 240
}
collectionView.reloadData()
}

关于ios - 在 Collection View 中显示/隐藏顶部行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47145882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com