如何快速选择aTableView部分中的单元格

Posted

技术标签:

【中文标题】如何快速选择aTableView部分中的单元格【英文标题】:How to select the cell in the section of aTableView in swift 【发布时间】:2019-05-22 21:15:58 【问题描述】:

我正在处理情节提要的表格视图中的部分,在该部分中选择一个单元格将引导我进入另一个屏幕。我设法做到了,但我觉得我使用了太多代码,必须找到更好的开发方法,我看过类似的出版物,他们试图做同样的事情,here我找到了这个答案

部分和部分中的项目数量会改变吗?如果没有,创建静态单元格并将每个单元格的转场连接到不同的目的地都可以在没有代码的情况下完成(全部在 Interface Builder 中)。

这正是我的情况,我有兴趣做这种形式。我有固定的数据,不会改变。现在我尝试以最好的方式开发这个功能,而不是像我目前拥有的那样。 我必须强调,我是 swift 开发的初学者。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
        switch indexPath.section 
        case 0:
            switch indexPath.row
            case 0:
                self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
                break
            case 1:
                break
            case 2:
                break
            default:
                break
            
            break

        case 1:
            switch indexPath.row
            case 0:
                break
            case 1:
                break
            case 2:
                break
            default:
                break
            
            break

        case 2:
            break

        case 3:

            break

        default:
            break
        
    

cellForRow :

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell : UITableViewCell = UITableViewCell(style: UITableViewCell.CellStyle.subtitle, reuseIdentifier: "item_option")
        cell.textLabel?.text = options[indexPath.section][indexPath.row]
        cell.imageView?.image = UIImage(named: "icon-myprofile")
        cell.textLabel?.font = cell.textLabel?.font.withSize(14)
        return cell
    

【问题讨论】:

能贴出cellForRow后面的代码吗? 我认为这不是一个好方法。即使您在情节提要中执行此操作,也将很难维护。您的数据现在没有变化,但在不久的将来可能会发生变化。我认为如果你了解一下 Delegates 并这样做,对你会更好。 @iDevid 用请求的方法更新我的问题 【参考方案1】:

您可以将那个巨大的 switch 缩短为

switch (indexPath.section, indexPath.row) 
    case (0,0):
        self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
    default:
        break

【讨论】:

【参考方案2】:

我认为您可以使用这样的情节提要:

首先将视图控制器和单元格添加到 UITableView,然后将 TableView 内容设置设置为右上角的Static Cells。之后只需添加转场:

【讨论】:

【参考方案3】:

如果您有 multiple cases 来处理,请使用 switch 语句。

但从您的代码中可以明显看出,您只是在处理single condition。在这种情况下,我认为不需要使用 switch statement

您可以轻松使用简单的if statement 来实现该功能。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
    if indexPath.section == 0 && indexPath.row == 0  
        self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
    

【讨论】:

以上是关于如何快速选择aTableView部分中的单元格的主要内容,如果未能解决你的问题,请参考以下文章

快速Xcode中的部分和单元格

如何快速裁剪collectionview单元格之外的部分图像

excel如何快速选择第一行到最后一行

为啥我在自定义单元格中的复选框在快速选择和滚动时显示不同的行为?

如何快速检索不同单元格中的数组元素 ios

如何快速获取 UICollectionView 中的单元格 atIndex?