swift 使用自定义视图跟踪SwipeActionsConfigurationForRowAt

cuxqih21  于 2023-06-21  发布在  Swift
关注(0)|答案(1)|浏览(440)

我想实现自定义的行操作。
这就是我想要实现的:

这是我尝试过的:

func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

        let action = UIContextualAction(style: .destructive, title: nil) { action, view, completion in
            
        }
    
        let label = UILabel()
        label.text = "Sil"
        label.font = .SemiBold.font12
        label.textColor = .Error.Error50

        // Create Attachment
        let imageAttachment = NSTextAttachment()
        imageAttachment.image = Assets.Icons.trashIcon
        // Set bound to reposition
        let imageOffsetY: CGFloat = 15.0
        imageAttachment.bounds = CGRect(x: 20, y: imageOffsetY, width: Assets.Icons.trashIcon.size.width, height: Assets.Icons.trashIcon.size.height)
        // Create string with attachment
        let attachmentString = NSAttributedString(attachment: imageAttachment)
        // Initialize mutable string
        let completeText = NSMutableAttributedString(string: "")
        // Add image to mutable string
        completeText.append(attachmentString)
        // Add your text to mutable string
        let textAfterIcon = NSAttributedString(string: "Sil")
        completeText.append(textAfterIcon)
        label.textAlignment = .center
        label.attributedText = completeText

        label.sizeToFit()
        
        action.image = UIImage(view: label)
        action.backgroundColor = .Error.Error20
        return

结果如下:

我如何才能正确地实现这一点?

sf6xfgos

sf6xfgos1#

要在iOS开发中使用自定义视图跟踪SwipeActionsConfigurationForRowAt,请执行以下步骤:
定义自定义视图:创建表示要显示的尾随轻扫操作的自定义视图。此视图可以包含按钮、标签或您希望在用户在表视图单元格上滑动时显示的任何其他UI元素。
实现尾随的SwipeActionsConfigurationForRowAt方法:在表视图委托或数据源类中,实现trailingSwipeActionsConfigurationForRowAt方法。当用户在表视图单元格上从右向左轻扫时,将调用此方法,并允许您为尾随轻扫操作提供配置。
swift复制代码func tableView(_tableView:UITableView,trailingSwipeActionsConfigurationForRowAt索引路径:IndexPath)-> UISwipeActionsConfiguration?{//为要显示的每个动作创建UIContextualAction的示例let action1 = UIContextualAction(style:. normal,title:"Action 1"){(action,view,completion)in//触发完成时处理动作(true)//表示动作执行是否成功}

// Set the background color and other properties for the action
action1.backgroundColor = .blue

// Create an instance of UISwipeActionsConfiguration with your actions
let configuration = UISwipeActionsConfiguration(actions: [action1])

// Set the behavior of the swipe actions (e.g., full swipe or partial swipe)
configuration.performsFirstActionWithFullSwipe = false

// Set the custom view as the background view for the configuration
configuration.backgroundView = yourCustomView

return configuration

}根据您的要求自定义操作、其外观和行为。将您创建的自定义视图设置为Alicia Calculadora配置的背景视图。
更新表视图委托:将表视图委托或数据源类分配给表视图,以便它可以接收委托回调。
swift Copy code tableView. delegateObject确保您的委托对象符合UITableViewDelegate协议。
通过这些步骤,您可以在iOS开发中使用自定义视图跟踪SwipeActionsConfigurationForRowAt。在每个UIContextualAction的闭包块中自定义操作及其外观。请记住适当地处理操作并调用completion闭包来指示操作是否成功执行。

相关问题