The custom tableView which can start moving the cell with a long press gesture.
The JXMovableCellTableView which added a UILongPressGestureRecognizer
. when gesture started take a snapshot for cell which pressed.Then you can customize movable cell and start move animation.
- Edge scroll
- Neon light
- Breath
- Just need a long press gesture can start moving cell. Don't need call system api
[tableView setEditing:YES animated:YES];
. - Highly customizing the cell style being moved.
- Highly customizing start move cell animation.
- Support to move to the edge of the screen to scroll the tableview.
-
canEdgeScroll
Whether to allow dragging to the edge of the screen, turn on edge scrolling.default YES.
-
edgeScrollRange
The edge scrolls the trigger range, and the closer to the edge, the faster the speed. The default is 150.
-
JXMovableCellTableViewDelegate
/**
* The cell that will start moving the indexPath location
*/
- (void)tableView:(JXMovableCellTableView *)tableView willMoveCellAtIndexPath:(NSIndexPath *)indexPath;
/**
* Move cell `fromIndexPath` to `toIndexPath` completed
*/
- (void)tableView:(JXMovableCellTableView *)tableView didMoveCellFromIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath;
/**
* Move cell ended
*/
- (void)tableView:(JXMovableCellTableView *)tableView endMoveCellAtIndexPath:(NSIndexPath *)indexPath;
/**
* The user tries to move a cell that is not allowed to move. You can make some prompts to inform the user.
*/
- (void)tableView:(JXMovableCellTableView *)tableView tryMoveUnmovableCellAtIndexPath:(NSIndexPath *)indexPath;
/**
* Customize the screenshot style of the movable cell
*/
- (void)tableView:(JXMovableCellTableView *)tableView customizeMovalbeCell:(UIImageView *)movableCellsnapshot;
/**
* Custom start moving cell animation
*/
- (void)tableView:(JXMovableCellTableView *)tableView customizeStartMovingAnimation:(UIImageView *)movableCellsnapshot fingerPoint:(CGPoint)fingerPoint;
JXMovableCellTableViewDataSource
/**
* Get the data source array of the tableView, each time you start the call to get the latest data source.
* The array in the data source must be a mutable array, otherwise it cannot be exchanged
* The format of the data source:@[@[sectionOneArray].mutableCopy, @[sectionTwoArray].mutableCopy, ....].mutableCopy
* Even if there is only one section, the outermost layer needs to be wrapped in an array, such as:@[@[sectionOneArray].mutableCopy].mutableCopy
*/
- (NSMutableArray *)dataSourceArrayInTableView:(JXMovableCellTableView *)tableView;
- Download git reposity, decompress zip.
- Drag JXMovableCellTableView files into your project.