上图显示编辑模式下的单元格,启用移动.@H_403_3@
我试图简单地运行(在UIVIEw * subvIEw在cell.subvIEws)(当我的UItableVIEw处于编辑模式),但按钮没有出现:@H_403_3@
<UItableVIEwCellScrollVIEw: 0x8cabd80; frame = (0 0; 320 44); autoresize = W+H; gestureRecognizers = <NSArray: 0x8c9ba20>; layer = <CALayer: 0x8ca14b0>; contentOffset: {0,0}>
如何允许/添加移动“按钮”而不启用我的UItableVIEw中的编辑模式?@H_403_3@
创建和添加具有默认运动功能的UIbutton也是一种选择.@H_403_3@解决方法 我实际上为我的一个应用程序做了类似的事情.它使用委托方法进行表格编辑,并使用户“欺骗”一点. 100%内置苹果功能.
1 – 将表设置为编辑(我在vIEwWillAppear中执行)@H_403_3@
-(voID)vIEwWillAppear:(BOol)animated{ [super vIEwWillAppear:animated]; [self.tableVIEw setEditing:YES];}
2 – 隐藏默认附件图标:@H_403_3@
-(UItableVIEwCellEditingStyle)tableVIEw:(UItableVIEw *)tableVIEw editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ //remove any editing accessorIEs (AKA) delete button return UItableVIEwCellAccessoryNone; }
3 – 保持编辑模式,将所有内容移动到右侧(在单元格中)@H_403_3@
-(BOol)tableVIEw:(UItableVIEw *)tableVIEw shouldindentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath{return NO;}
4 – 在这一点上,您应该可以拖动单元格,而不是看起来像编辑模式.在这里我们欺骗用户.创建自己的“移动”图标(默认情况下三行,您想要的任何图标),并将imageVIEw正确放置在单元格上.@H_403_3@
5 – 最后,实现委托方法来实际重新排列你的底层数据源.@H_403_3@
-(voID)tableVIEw:(UItableVIEw *)tableVIEw moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{ //Get original ID NSMutableArray *originalArray = [self.model.items objectAtIndex:sourceIndexPath.section]; Item * original = [originalArray objectAtIndex:sourceIndexPath.row]; //Get destination ID NSMutableArray *destinationArray = [self.model.items objectAtIndex:destinationIndexPath.section]; Item * destination = [destinationArray objectAtIndex:destinationIndexPath.row]; CGPoint temp = CGPointMake([original.section intValue],[original.row intValue]); original.row = destination.row; original.section = destination.section; destination.section = @(temp.x); destination.row = @(temp.y); //Put destination value in original array [originalArray replaceObjectAtIndex:sourceIndexPath.row withObject:destination]; //put original value in destination array [destinationArray replaceObjectAtIndex:destinationIndexPath.row withObject:original]; //reload tablevIEw smoothly to reflect changes dispatch_async(dispatch_get_main_queue(),^{ [UIVIEw TransitionWithVIEw:tableVIEw duration:duration options:UIVIEwAnimationoptionTransitionCrossdissolve animations:^{ [tableVIEw reloadData]; } completion:NulL]; }); }总结
以上是内存溢出为你收集整理的iOS – 在“UITableView”中允许默认的行移动,而不需要编辑模式全部内容,希望文章能够帮你解决iOS – 在“UITableView”中允许默认的行移动,而不需要编辑模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)