Uma*_*air 13 cocoa-touch objective-c uitableview
我有一个奇怪的问题,我无法弄清楚我错过了什么.我有一个可编辑的UITableView(即当我的UI加载时,我发送我的表setEditing:YES animated:YES消息).表中的最后一行是"添加新"行.除了表格中最后一行之外的所有行都可以移动.没有行可以删除.
行显示正确,并且抓取器显示在除最后一行(按预期)之外的所有行的右侧.问题是我无法移动行.当我点击抓取器移动行时,它有点摇晃,但我无法向上或向下拖动它.这是相关的代码片段:
- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleNone;
}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == [self.itemArray count] ) {
return NO;
}
return YES;
}
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == [self.itemArray count]) {
return NO;
}
return YES;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
Item *item = [self.itemArray objectAtIndex:fromIndexPath.row];
[self.itemArray removeObjectAtIndex:fromIndexPath.row];
[self.itemArray insertObject:item atIndex:toIndexPath.row];
}
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath {
if ([proposedDestinationIndexPath row] < [self.itemArray count]) {
return proposedDestinationIndexPath;
}
NSIndexPath *betterIndexPath = [NSIndexPath indexPathForRow:[self.itemArray count]-1 inSection:0];
return betterIndexPath;
}
Run Code Online (Sandbox Code Playgroud)
在尝试调试时,似乎tableView:moveRowAtIndexPath:几乎立即被调用,即使我正在抓住抓取器(即我还没有举起手指).而且,我的tableView:targetIndexPathForMoveFromRowAtIndexPath:proposedDestinationIndexPath:根本没有被调用.
关于我做错了什么的任何想法?关于我应该尝试解决这个问题的任何建议?
Raf*_*bre 28
我遇到了同样的问题,@ wilsontgh和@Andy的回答让我朝着正确的方向前进.但是,我无法从superview中删除所需的PanRecognizer,也无法在某些视图中禁用它.对我有用的是在主视图识别器上设置它,这避免了取消处理到其他视图/识别器的触摸.
panRecognizer.cancelsTouchesInView = NO;
Run Code Online (Sandbox Code Playgroud)
wil*_*tgh 23
我也有这个问题.检查你是否有一个UIGestureRecognizer(对我来说它是一个UIPanGestureRecognizer)附加到UITableView的超级视图.我删除它并重新排序工作.
| 归档时间: |
|
| 查看次数: |
6977 次 |
| 最近记录: |