來揭示隱藏的文本我試圖在用戶從左向右滑動單元格時顯示的UITableView
中單元格的左側放置日期字段。釋放時,細胞應該彈回原位,隱藏日期字段。有誰知道如何做到這一點?它是否在如何通過滑動UITableViewCell
func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {
或以某種方式定義在自定義單元格內?
來揭示隱藏的文本我試圖在用戶從左向右滑動單元格時顯示的UITableView
中單元格的左側放置日期字段。釋放時,細胞應該彈回原位,隱藏日期字段。有誰知道如何做到這一點?它是否在如何通過滑動UITableViewCell
func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {
或以某種方式定義在自定義單元格內?
我不會在發佈時使用編輯委託。
將單元格內容放入UIView
的UIScrollView
中,然後在您希望顯示的UIScrollView
後面設置信息。
然後在滾動delegate
,scrollViewDidEndDragging
上,將contentOffset設置爲0動畫。
編輯:潘手勢例如
如果你想爲最簡單的途徑,建立了customContentView這是你的細胞大小的電池,泛姿態加入到這一點,那麼設置和按鈕,你想要的,我的例子下面我有一個按鈕,每邊。
注:這是SWIFT 2,但應該很容易翻譯,我做了這個一個longgg時間前,當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()
}
}
我的目標是保持editActionsForRowAt以揭示右側的一些按鈕,但要使用平移動作顯示左側的日期文本。如果我使用scrollView,我會失去這種能力。我一直在看這個教程,來自Ray Wenderlich,https://www.raywenderlich.com/77974/making-a-gesture-driven-to-do-list-app-like-clear-in-swift-第1部分建議使用平移手勢識別器。我想知道這是否可以與編輯委託人結合使用。 –
在這種情況下,我會使用兩側的滾動視圖,製作您自己的按鈕,這樣您可以做一個簡單的檢查,看看它已被移動到哪個方向來檢查是否將其恢復到其原始位置 – SeanLintern88
這是否帶入內存管理問題?我讀過的大多數內容都指向tableviews,對於大型數據數組更好 –
做你正在尋找類似的iMessage應用的東西哪些日期在滑動屏幕上顯示在聊天泡泡旁邊? – GoodSp33d
這基本上是一樣的想法 –
這可能適用於平底鍋,但該UI可能完全不同,因爲聊天氣泡位於相反兩側,並且您有足夠的空間在右側顯示日期,而無需重新加載頂部聊天氣泡。 – GoodSp33d