使用Three20重新排序Rows / Cells超出表格边界时,表视图不会滚动

时间:2011-05-31 19:19:09

标签: iphone ios three20 editing

当我在Three20 TTTableViewController中重新排序行/单元格时(编辑表格并向上或向下移动单个单元格),当单元格移动超出tableview的边界时,它不会滚动。当我将单元格向上拖动超出边界时,它会自动将单元格向上动画并从视图中移出,而不会滚动它。这使得无法有效地将细胞重新排序到当前可见之外的位置。

我已经使用和不使用Three20对此进行了测试,只有在使用Three20实现进行订购时才会滚动表格。

2 个答案:

答案 0 :(得分:1)

显然Three20的TTTableView实施会覆盖UIScrollView

- (void)setContentSize:(CGSize)size;

- (void)setContentOffset:(CGPoint)point;

这些是为了防止在内容大小或表高度发生变化时错误地更改contentOffset,尽管它在编辑模式下移动行时无意中阻止了表滚动。

我评论了这些方法,并且我需要的功能可用。

答案 1 :(得分:1)

Three20喜欢使用setContentOffset和setContentSize方法覆盖来控制滚动行为。滚动行为由scrollEnabled属性控制。

TTTableViews是scrollEnabled = YES,但是当这个方法被称为scrollEnabled = NO时,需要在重新排序行时重置。

  • (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath { tableView.scrollEnabled = YES; }