ios - 如何在点击时更改 UITableViewCell 的部分位置
<p><p>每当点击单元格上的按钮时,我都会尝试将 UITableViewCell 添加到另一个 UITableView 部分。但是,我对如何在单元格已加载到表格 View 后更改单元格的部分位置的过程感到非常困惑。目前我有两个部分,并将 5 个自定义 UITableViewCells 添加到第一部分。 </p>
<p>关于如何将单元格移动到点击的第二部分的任何想法?</p>
<p>这是我的 ViewController 类中的单元格和部分方法:</p>
<pre><code>var tableData = ["One","Two","Three","Four","Five"]
// Content within each cell and reusablity on scroll
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var tableCell : Task =tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! Task
tableCell.selectionStyle = .None
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
var titleString = "Section \(indexPath.section) Row \(indexPath.row)"
tableCell.title.text = titleString
println(indexPath.row)
return tableCell
}
// Number of sections in table
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
// Section titles
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
if section == 0 {
return "First Section"
} else {
return "Second Section"
}
}
// Number of rows in each section
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return tableData.count
} else if section == 1 {
return 0
} else {
return 0
}
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您需要为第一部分和第二部分提供单独的数据源。点击按钮时,修改数据源并将单元格移动到新的部分,使用 <code>moveRowAtIndexPath(indexPath: NSIndexPath, toIndexPath newIndexPath: NSIndexPath)</code> UITableView 方法。</p>
<p>例如:</p>
<pre><code>var firstDataSource = ["One","Two","Three","Four","Five"]
var secondDataSource = [ ]
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return section == 0 ? firstDataSource.count : secondDataSource.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
cell.textLabel?.text = indexPath.section == 0 ? firstDataSource : secondDataSource
return cell
}
// For example, changing section of cell when click on it.
// In your case, similar code should be in the button's tap event handler
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
if indexPath.section == 0
{
let data = firstDataSource
tableView.beginUpdates()
secondDataSource.append(data)
firstDataSource.removeAtIndex(indexPath.row)
let newIndexPath = NSIndexPath(forRow: find(secondDataSource, data)!, inSection: 1)
tableView.moveRowAtIndexPath(indexPath, toIndexPath: newIndexPath)
tableView.endUpdates()
}
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 如何在点击时更改 UITableViewCell 的部分位置,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/32610802/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/32610802/
</a>
</p>
页:
[1]