gpt4 book ai didi

ios - 在自动布局中隐藏和显示元素

转载 作者:行者123 更新时间:2023-11-29 00:03:06 24 4
gpt4 key购买 nike

如果我单击导航栏中的搜索按钮,然后显示 uisearchbar 和 uitable 需要向下移动,然后取消单击导航栏中的搜索按钮,然后隐藏 uisearchbar 和需要移至顶部的表格。

请看我的需求截图

Before clicking search icon

After clicking search icon

最佳答案

考虑到它是一个表格,我会将该搜索面板实现为自定义 UITableViewCell,并仅使用此单元格向 tableView 添加一个新部分。然后您将在表中有两个部分:第一个是这个单元格,第二个是其余部分。

然后您可以使用 insertRows(at:with:)deleteRows(at:with:) 来显示和隐藏该面板(支持动画)。你只需要有一些数据模型来确保 tableView 的状态总是一致的(我会把适当的 cellForRowAt 实现留给你):

var isCurrentlyShowingSearchBar: Bool = false

func numberOfSections(in tableView: UITableView) -> Int {
return 2
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch section {
case 0:
return isCurrentlyShowingSearchBar ? 1 : 0
case 1:
return items.count
default:
fatalError()
}
}



func showSearchBar() {
// update model
isCurrentlyShowingSearchBar = true
// add cell
tableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .automatic)
}

func hideSearchBar() {
// update model
isCurrentlyShowingSearchBar = false
// remove cell
tableView.deleteRows(at: [IndexPath(row: 0, section: 0)], with: .automatic)
}

关于ios - 在自动布局中隐藏和显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48904979/

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