【发布时间】:2011-11-11 11:46:03
【问题描述】:
我目前有一个文档列表,一个接一个地显示。当其中一些文档向另一个文档移动(以创建文件夹)时,我想填充先前文档剩余的空白空间,将它们向上移动 165 像素(每个文档缩略图的高度)。
所以,我认为我可以做到这一点。但是动画可能不止一个视图,所以它并没有真正起作用。
例如,2 个文档(位于一个文档之上)可能会消失,然后是该文档之后的一个空格(以前的文档所在的位置),然后是另外 2 个文档,接着是 3 个空格,然后是另外 4 个文件。
示例:
空白表示已消失的文档,黑色表示存在的文档
我决定了一种可行的方法:
- 找出一个文档上方有多少空格(直到它碰到另一个文档,所以它不是文档上方的空格总数,只是到达文档之前的数字)
然后
- 通过将当前文档上方的“透明”文档的计数乘以 165 来计算向上移动的像素数
并从列表底部开始对每个文档重复此过程。
所以我尝试为此编写一些代码,但它并没有完全移动所有文档。相反,它会移动第一个文档,但不会移动其他文档。
这是我的代码:
incCtr 是文档上方的空格数。
for (int i = [documentThumbnails count]-1; i != 0; i--) {
int ctr = i;
int incCtr = 0;
//while there is a blank space, increment incCtr
while (![self thumbnailExistsAtSpecificIndex:ctr-1]) {
ctr--;
incCtr++;
}
uint32_t toMoveUpYCoordinate;
thumbnailView *object = [documentThumbnails objectAtIndex:i];
toMoveUpYCoordinate = (165 * incCtr);
object.frame = CGRectMake(13, object.frame.origin.y-toMoveUpYCoordinate, object.frame.size.width, object.frame.size.height);;
}
对此的任何帮助将不胜感激。
【问题讨论】:
标签: iphone objective-c arrays animation for-loop