В настоящее время у меня есть список документов, отображаемых один за другим. Когда некоторые из этих документов анимируются по отношению к другому документу (для создания папки), я хочу заполнить пустое пространство, оставшееся с предыдущими документами, переместить их на 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);;
}
Любая помощь по этому вопросу будет принята.