У меня есть приложение, которое имитирует приложение для фотографий, так как оно отображает таблицу миниатюр, представляющих альбом, на котором щелкнул пользователь.У меня проблемы с имитацией анимации этого окна, когда происходит вращение.Для справки: окно, о котором я говорю, находится ниже:
![enter image description here](https://i.stack.imgur.com/fZRNa.png)
Я могу получить конечный результат, чтобы получилось хорошо (т.е. после того, как анимациязавершено, все работает), однако мое вращение выглядит не так хорошо, как приложение для фотографий.Приложение для фотографий на самом деле выглядит так, как будто оно вращает окно, и вы едва замечаете, что фотографии сбрасываются.На моем, вы можете видеть, как миниатюры перемещаются, и это выглядит не так хорошо.
Кто-нибудь знает, что делает приложение для фотографий?Возможно ли, что это ускоряет анимацию, или, возможно, размывает ее в середине, чтобы вы не могли видеть, что происходит?Мой код указан ниже:
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
else
{
for (UIButton *photoButton in [cell subviews])
{
[photoButton removeFromSuperview];
}
}
NSInteger photosPerRow;
if (self.interfaceOrientation == UIInterfaceOrientationPortrait)
{
photosPerRow = 4;
}
else
{
photosPerRow = 6;
}
CGRect frame = CGRectMake(4, 2, 75, 75);
for (int i = [indexPath row] * photosPerRow; i < (([indexPath row] * photosPerRow) + photosPerRow) && i < [[self photos] count]; i++)
{
[[photos objectAtIndex:i] setFrame:frame];
[cell addSubview: [photos objectAtIndex:i]];
frame.origin.x = frame.origin.x + frame.size.width + 4;
}
return cell;
}
Тогда вот как я его анимирую в контроллере табличного представления:
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
[self.tableView reloadData];
return (toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
ОБНОВЛЕНИЕ: Ну, я много пробовал.До сих пор переключал весь мой код в представление с прокруткой, затем пытался анимировать миниатюры следующим образом, когда происходит вращение: исчезнуть миниатюра, переместить ее на новое место, затем добавить ее. Конечно, я делал это только с UIThumbViewsэто нужно было перенести.Я пришел к выводу, что яблоко должно использовать два представления, чтобы осуществить их.Один вид со старым набором миниатюр, затем вращающийся поверх нового набора миниатюр.Есть идеи?