Ios 更改自定义表格单元格上前导/尾随开关的高度

Ios 更改自定义表格单元格上前导/尾随开关的高度,ios,swift,uiswipegesturerecognizer,swipe-gesture,Ios,Swift,Uiswipegesturerecognizer,Swipe Gesture,我目前正在开发一个Swift 4 iOS应用程序。我有一个在卡片视图中显示的自定义表格单元格(参见下面的示例屏幕截图) 当我在一行上实现滑动操作时,滑动菜单背景色的高度占据单元格行的全部高度 我希望它正好是卡片视图的高度。我要补充的是,每一行都有不同的高度,因为它们包含不同长度的小文本。有没有办法做到这一点 这是不可能的。找到定制的替代方法。存在替代方法。您可以更改大小,但这是一种旧模式,如更改高度(view.size.height=(newvalue))。要更改位置,请使用(view.fram

我目前正在开发一个Swift 4 iOS应用程序。我有一个在卡片视图中显示的自定义表格单元格(参见下面的示例屏幕截图)

当我在一行上实现滑动操作时,滑动菜单背景色的高度占据单元格行的全部高度

我希望它正好是卡片视图的高度。我要补充的是,每一行都有不同的高度,因为它们包含不同长度的小文本。有没有办法做到这一点


这是不可能的。找到定制的替代方法。

存在替代方法。您可以更改大小,但这是一种旧模式,如更改高度
(view.size.height=(newvalue))
。要更改位置,请使用
(view.frame.origin.y=(newvalue))
。它将在静态高度单元和iOS>=11下工作。这在动态高度单元格中不起作用。在tableviewcell的委托方法内进行这些更改

 func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath) {

        if let cell = tableView.cellForRow(at: indexPath) as? TempcellTableViewCell{
            if let spvcell = cell.superview{
                for svswipe in spvcell.subviews{
                    let typeview = type(of: svswipe.self)
                    if typeview.description() == "UISwipeActionPullView"{
                        svswipe.frame.size.height = 100//size you want
                        svswipe.frame.origin.y = 5
                    }
                }
            }   
        }
    }
以及在
LeadingsWipeActionsConfiguration for Rowat/TrailingsWipeActionsConfiguration for Rowat
的功能中。在返回UISweepActionsConfiguration对象之前进行以下更改

 func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
        let Cancel = UIContextualAction.init(style: .normal, title: "Cancel") { (action, view, nil) in
             print("Cancel")
         }
         Cancel.backgroundColor = UIColor.red

         let config = UISwipeActionsConfiguration.init(actions: [Cancel])
         config.performsFirstActionWithFullSwipe = false // Prevent swiping

         tableView.reloadRows(at: [indexPath], with: .none)

         return config
    }

这个解决方案对我有效:D。。。我希望这个答案能帮助你

我想没有办法,你可以改变身高。但作为一个替代解决方案,在卡片布局上添加滑动手势,然后根据您的设计要求打开另一个视图。我已经尝试过了,您不能使用native。您可以在github上搜索,可能有任何代码可以根据您的要求执行相同的操作。谢谢各位-我刚刚发现,这允许更好的定制级别。它不能解决行高问题,但我认为我可以通过将滑动背景颜色设置为视图控制器的颜色,并使用彩色图标/文本进行滑动操作(SwipeCellKit中的自定义“扩展样式”)来克服它。