0

在我的应用程序中,我TableViewCell将我的自定义设置为像卡片一样显示。我还UITableViewRowActions为这些单元实现了自定义。然而,这些动作看起来很奇怪,因为我添加了一个图层以使单元格看起来像一张浮动卡片。

这是它的样子 这是我的cellForRowAt函数代码。

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "someCell", for: indexPath) as! CustomCell
        cell.delegate = self

        cell.backgroundColor = .clear
        cell.contentView.backgroundColor = .clear

        let whiteRoundedView: UIView = UIView(frame: CGRect(x: 10, y: 8, width: self.view.frame.size.width - 20, height: cell.frame.size.height - 20))
        whiteRoundedView.layer.backgroundColor = CGColor(colorSpace: CGColorSpaceCreateDeviceRGB(), components: [1.0, 1.0, 1.0, 0.9])
        whiteRoundedView.layer.masksToBounds = false
        whiteRoundedView.layer.cornerRadius = 2.0
        whiteRoundedView.layer.shadowOffset = CGSize(width: -1, height: 1)
        whiteRoundedView.layer.shadowOpacity = 0.2
        cell.contentView.addSubview(whiteRoundedView)
        cell.contentView.sendSubview(toBack: whiteRoundedView)

        cell.updateCell()
        return cell
    }

还有我的UITableViewRowAction功能。预警:我正在使用这个SwipeCellKit存储库

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
        if orientation == .left {
            guard isSwipeRightEnabled else { return nil }
            let completeAction = SwipeAction(style: .default, title: "Complete") { (action, index) in
                print("complete!")

            }
            completeAction.backgroundColor = .green
            return [completeAction]
        } else {
            let deleteAction = SwipeAction(style: .destructive, title: "Delete") { (action, index) in
                print("delete")
            }
            return [deleteAction]
        }
    }

有没有办法调整尺寸UITableViewRowAction以适应电池的模具?

4

3 回答 3

2

如果有人在 2019 年仍在寻找解决方案,您可以使用不可见的 unicode 字符来设置宽度。

UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"\u2060\t\t\t\u2060" handler: [self handler]];
于 2019-03-04T03:21:58.137 回答
0

如果不对框架进行一些更改,目前是不可能的。

我确实有计划添加一些方法,这些方法将在显示之前SwipeTableViewCellDelegate公开每个方法,并且随着滑动的继续发生。UIButton我想这会给你足够的灵活性来实现你的布局。

与此同时,在你自己的分叉上做这件事应该不会太难。具体来说,看SwipeTableViewCell, 方法内部configureActionView。它创建了SwipeActionsView一个buttons包含滑动UIButton子类的属性。您只需要将它们公开给您的应用程序。

于 2017-02-24T20:41:27.953 回答
0

您可以在 viewDidLoad() 中添加此代码,它将相应地创建一个自定义行

tableView.rowHeight = 80.0

于 2020-01-30T15:02:51.670 回答