Mam problemy z transitionWithView
i animateWithDuration
. Jeden z moich bloków animateWithDuration
nie przechodzi, jest to nagła zmiana, a transitionWithView
nie wyłącza czasowo interakcji użytkownika. Sprawdziłem dokumenty i wierzę, że robię wszystko poprawnie, ale oczywiście coś jest nie tak. Oto dwa bloki kodu:Problemy z przejściem z ViewView i animateWithDuration
Jest to mój główny kontroler widoku ViewController
, który ma trzy widoki kontenerów/kontrolery widoku podrzędnego. Ten blok przenosi jeden z widoków kontenera, ale nie blokuje użytkownika z innych interakcji w trakcie ViewController
podczas przejścia.
[UIView transitionWithView:self.view duration:0.5 options:UIViewAnimationOptionCurveEaseOut animations:^ {
CGRect frame = _containerView.frame;
frame.origin.y = self.view.frame.size.height - _containerView.frame.size.height;
_containerView.frame = frame;
}completion:^(BOOL finished) {
// do something
}];
Jest to jeden z moich kontrolerów widoku kontenerów. Animacja wydaje się nie mieć wpływu, ponieważ zmienia się nagle tekst, tak jakby blok animacji nie istniał.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.viewController toggleFlavoredOliveOilsTableView];
if (indexPath.row > 0) {
NSDictionary *selectedCellDict = [[_flavoredOliveOilsDict objectForKey:@"Unflavored Olive Oils"] objectAtIndex:indexPath.row - 1];
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^ {
self.viewController.productTitleLabel.text = [_flavoredOliveOilsTableView cellForRowAtIndexPath:indexPath].textLabel.text;
self.viewController.productDescriptionTextView.text = [selectedCellDict objectForKey:@"Description"];
}completion:nil];
if (indexPath.row == 1) {
[self.viewController setProductDescriptionTextViewFrameForInformationTab];
}
else {
[self.viewController setProductDescriptionTextViewFrameForNonInformationTab];
//self.viewController.productImageView.image = [UIImage imageNamed:[selectedCellDict objectForKey:@"Image"]];
}
}
}
Myślę, że problemy są w pewnym stopniu powiązane, ponieważ większość animacji i bloków przejściowych nie działa zgodnie z oczekiwaniami. Dzięki za pomoc.
Edit
Co usiłuję osiągnąć porusza widok pojemnika w ViewController
i ustawić właściwości tekstowe i graficzne etykiety, widoku tekstu, a także wyświetlać obraz; z których wszystkie są w widoku głównym. Szczegóły tych właściwości są wysyłane za pośrednictwem kontrolera widoku podrzędnego. transitionWithView
jest w metodzie o nazwie toggleFlavoredOiveOilsTableView
, która jest wywoływana w didSelectRowAtIndexPath
. Myślę, że problem polega na tym, że próbuję wywołać dwa różne bloki animacji/przejścia w tym samym czasie.
Jeśli chcesz animować obie etykiety w tym samym czasie, umieść dwie etykiety we własnym widoku kontenera etykiet, a następnie użyj go jako pierwszego parametru do "transitionWithView". – Rob
Mam jeden z nich częściowo działa poprawnie teraz. Czy nie można łączyć "animateWithDuration" i "UIViewAnimationOptionTransitions" lub łączyć przejścia "transitionWithView" i "UIViewAnimationOptions" (non-transition)? Wydaje się, gdy mam te, które nie działają, ale jeśli używam opcji przejścia z 'transitionWithView' to działa, i podobnie z animacjami. Przeczytałem dokumenty i wydaje się, że można je wszystkie połączyć, ale to nie zadziałało. –
Zobacz poprawione pytanie. Dzięki –