如何通过滑动 UITableViewCell 来显示隐藏文本

谢恩·奥西斯奈

我试图在单元格的左侧放置一个日期字段,UITableView当用户从左向右滑动单元格时会显示该字段释放后,单元格应弹回原位,隐藏日期字段。有谁知道如何做到这一点?是否在处理

func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {

或以某种方式在自定义单元格中定义?

肖恩·林特恩

我不会在您发布时使用编辑委托。

将单元格内容放在 a UIView、 a 中UIScrollView,然后设置UIScrollView您希望显示的信息。

然后在 scroll 上delegatescrollViewDidEndDragging将 contentOffset 设置回 0 动画。

编辑:平移手势示例

如果您希望采用最简单的路线,请使用与您的单元格大小相同的 customContentView 设置您的单元格,为此添加平移手势,然后设置您想要的按钮,在下面的示例中,我的每侧都有一个按钮。

注意:这是 swift 2,但应该很容易翻译,我很久以前在 swift 2 发布时就做了这个,它可以通过重构来实现

var savedX = 0 as CGFloat
var buttonWidth = 60 as CGFloat
var open = false

func panGestureHandler(gesture: UIPanGestureRecognizer) {

    if gesture.state == .Changed {
        let translation = gesture.translationInView(tagView)

        let difference = -translation.x

        if difference > 0 && !allowScrollRight {
            return
        }

        let newConstant = savedX + difference

        tagViewCenterXConstraint.constant = newConstant

        let alpha = abs(tagViewCenterXConstraint.constant) / buttonWidth

        deleteButton.alpha = min(alpha, 1)
        followButton.alpha = min(alpha, 1)

        if let action = swipe {
            action(self)
        }
    }

    if gesture.state == .Ended {
        let translation = gesture.translationInView(self)

        let trans = fabs(translation.x)

        open = !open && trans > buttonWidth

        if open {
            if(translation.x > 0){
                resetRight(true)
            } else {
                if allowScrollRight {
                    resetLeft(true)
                }
            }
        } else {
            resetView(true){

            }
        }
    }
}

 func resetLeft (animated : Bool) {
        tagViewCenterXConstraint.constant = self.buttonWidth
        savedX = self.buttonWidth


    if animated {
        UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.7, options: [UIViewAnimationOptions.CurveEaseIn, UIViewAnimationOptions.BeginFromCurrentState], animations: { () -> Void in
            self.tagView.layoutIfNeeded()
            self.leftView.layoutIfNeeded()
            self.rightView.layoutIfNeeded()

            }, completion: { (finished) -> Void in
        })
    }
}

func resetRight (animated : Bool) {
    tagViewCenterXConstraint.constant = -self.buttonWidth
    savedX = -self.buttonWidth

    if animated {
        UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.7, options: [UIViewAnimationOptions.CurveEaseIn, UIViewAnimationOptions.BeginFromCurrentState], animations: { () -> Void in
            self.tagView.layoutIfNeeded()
            self.leftView.layoutIfNeeded()
            self.rightView.layoutIfNeeded()

            }, completion: { (finished) -> Void in
        })
    }
}

func resetView (animated : Bool, completion: () -> Void ) {
    tagViewCenterXConstraint.constant = 0
    savedX = 0
    open = false

    if animated {
        UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.7, options: [UIViewAnimationOptions.CurveEaseIn, UIViewAnimationOptions.BeginFromCurrentState], animations: { () -> Void in
            self.tagView.layoutIfNeeded()
            self.leftView.layoutIfNeeded()
            self.rightView.layoutIfNeeded()

            }, completion: { (finished) -> Void in
                completion()
        })
    } else {
        completion()
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过点击单元格在 uitableviewcell 中显示滑动按钮?

如何来回移动UITableViewCell以显示它可以滑动?

如何使用闪亮的actionButton显示和隐藏文本输出?

如何在Vanilla JS中显示和隐藏文本?

如何使用jQuery循环显示/隐藏文本区域?

如何使用 CSS 在悬停时显示隐藏文本

容器滑动时隐藏文本

UITableViewCell,在滑动时显示删除按钮

Swift3:UITableViewCell和UIButton-通过单击UIButton显示和隐藏UITableViewCell

如何显示(或隐藏)隐藏文件

如何通过选择 UITableViewCell 来更改 TabBarController 中的 ViewController?

如何在按钮上显示/隐藏文本旁边显示图标?

通过固定div时如何隐藏文本?

单击Bootstrap中的单选按钮时如何显示/隐藏文本

如何在更改选择值时显示/隐藏文本框字段

如何从名称中使用jQuery显示/隐藏文本框?

如何使用 python tkinter 中的复选按钮在 Entry 小部件中显示或隐藏文本?

用户在搜索栏上键入时,如何显示/隐藏文本区域值?

如何在多个元素上使用相同的代码切换显示/隐藏文本

如何遍历数组以在ReactJS上显示和隐藏文本

如何在链接按钮上的gridview中显示和隐藏文本框

如何切换链接(而非按钮)以显示和隐藏文本

单击按钮时如何隐藏文本

如何在焦点后隐藏文本?

滑动删除按钮位于自定义UITableViewCell文本下

比较功能:当用户向比较滑块的左侧或右侧滑动时,如何隐藏文本

如何使Nautilus自动显示隐藏文件?

如何修复这些约束,使文本显示在 UITableViewCell 中图像的右侧?

滑动即可删除UITableViewCell