iOS自定义侧滑删除按钮实现

iOS 的自定义侧滑删除功能,用起来是真挺灵活的。系统自带的那一套虽然方便,但一旦你想加点炫酷的动画、多个操作按钮或者自定义样式,就有点捉襟见肘了。这个例子里,用的是手势+动画的组合方式,玩法比较自由,样式你随便折腾,响应也快。

手势识别是核心之一,直接在UITableViewCell里加个UISwipeGestureRecognizer,监听左滑动作。一旦手势触发,就把你提前藏好的那个按钮视图滑出来,整个过程看着顺。

动画用CGAffineTransform来搞,滑出滑回都能控制得比较细腻。按钮用UIButton做,样式你自己定,删除、编辑、收藏都能加。要是你手头的项目对交互体验有点追求,这种方式就比较合适。

细节方面,像事件、懒加载、跟UITableView的滚动配合啥的都得注意下。比如手势滑动时别让列表跟着动;或者滑动距离没达到要求,就别弹出按钮,防误触。做成组件也是个不错的选择,方便以后复用。

如果你还不太熟UITableView手势识别这些概念,可以看看这些相关资料:iOS 手势识别应用实例,或者更底层的UIGestureRecognizer 子类详解,看完你就更有数了。

,SwipeableTableCell 这个例子挺实用的。适合需要在 UI 细节上下功夫,又不想被系统 API 限制的场景。自己写,省心省力还好玩。

zip
SwipeableTableCell.zip 预估大小:26个文件
folder
SwipeableTableCell 文件夹
file
.DS_Store 6KB
folder
SwipeableTableCell 文件夹
file
MasterViewController.m 4KB
file
SwipeableCell.m 9KB
file
MasterViewController.h 257B
folder
en.lproj 文件夹
file
InfoPlist.strings 45B
file
main.m 362B
folder
Base.lproj 文件夹
file
Main.storyboard 14KB
file
SwipeableCell.h 626B
folder
Images.xcassets 文件夹
folder
LaunchImage.launchimage 文件夹
file
Contents.json 442B
folder
AppIcon.appiconset 文件夹
file
Contents.json 333B
file
SwipeableTableCell-Info.plist 1KB
file
SwipeableTableCell-Prefix.pch 344B
file
AppDelegate.h 302B
file
DetailViewController.h 368B
file
DetailViewController.m 1015B
file
AppDelegate.m 2KB
folder
SwipeableTableCellTests 文件夹
folder
en.lproj 文件夹
file
InfoPlist.strings 45B
file
SwipeableTableCellTests-Info.plist 698B
file
SwipeableTableCellTests.m 694B
folder
SwipeableTableCell.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
file
contents.xcworkspacedata 163B
folder
xcuserdata 文件夹
folder
jason.xcuserdatad 文件夹
file
UserInterfaceState.xcuserstate 13KB
folder
xcuserdata 文件夹
folder
gth.xcuserdatad 文件夹
folder
xcschemes 文件夹
file
xcschememanagement.plist 580B
file
SwipeableTableCell.xcscheme 4KB
folder
jason.xcuserdatad 文件夹
folder
xcschemes 文件夹
file
xcschememanagement.plist 580B
file
SwipeableTableCell.xcscheme 4KB
file
project.pbxproj 21KB
zip 文件大小:50.9KB