Я работаю над контроллером уже 4 дня и не могу решить свои проблемы!
Позвольте мне объяснить мою архитектуру:
У меня есть "Rootview", который содержит ScrollView и anImageView (оба они добавлены в IB)
Затем у меня есть 4 внешних контроллера просмотра.
Я хочу: поместите мои 4 контроллера просмотра в мой вид прокрутки (это отлично работает, оба представления добавляются в мой scrollView в коде) и разрешите пользователям прокручивать между представлениями
Когда я прокручиваю, у меня есть небольшая анимация, которая масштабирует мои представления до 50%, а затем масштабирует их до 100%.
Когда я отключаю «Автомакет» в IB, все работает отлично! Моя анимация и позиция моих взглядов. Но я не могу отключить его, потому что хочу, чтобы мое приложение работало на iPhone4 и iPhone5.
Я не знаю, как реализовать свои ограничения, чтобы правильно расположить все мои взгляды. Я просто хочу, чтобы мои представления были изменены на 50 пикселей по высоте, чтобы соответствовать экрану iPhone 4.
Вот мой scrollViewConfiguration
- (void)configureScrollView{
/* On déclare le nombre de page la scrollview */
if (self.myCurrentEvent.isEvent)
{
self.numberOfScrollViewPages = 2;
}
else
{
self.numberOfScrollViewPages = 4;
}
/* On initialise le tableau qui va contenir les tableviews */
viewControllersArray = [[NSMutableArray alloc] init];
/* Tant qu'on a pas atteint le nombre de pages de la scrollview */
for (unsigned i = 0; i < self.numberOfScrollViewPages; i++)
{
/* On ajoute NSNull au tableau de tableview */
[self.viewControllersArray addObject:[NSNull null]];
}
[self.myScrollView setTranslatesAutoresizingMaskIntoConstraints:NO];
/* On configure la content size en prenant la taille de la scroll view x le nombre de pages */
self.myScrollView.contentSize = CGSizeMake(self.myScrollView.frame.size.width * self.numberOfScrollViewPages, self.myScrollView.frame.size.height);
/* On désactive l'affichage du scroll horizontal */
self.myScrollView.showsHorizontalScrollIndicator = NO;
/* On désactive l'affichage du scroll vertical */
self.myScrollView.showsVerticalScrollIndicator = NO;
/* On désactive la fonction scroll to top */
self.myScrollView.scrollsToTop = NO;
/* On indique implémenter les fonction du son delegate */
self.myScrollView.delegate = self;
/* On affiche la première page */
[self loadScrollViewWithPage:0];
/* On affiche la deuxième page */
[self loadScrollViewWithPage:1];
if (!self.myCurrentEvent.isEvent)
{
[self loadScrollViewWithPage:2];
[self loadScrollViewWithPage:3];
}}
- (void)loadScrollViewWithPage:(int)page{
/* Si la page passée en paramètre est inférieure à 0, on sort de la fonction */
if (page < 0) return;
/* Si la page passée en paramètre est supérieur au nombre de page de la scrollview */
if (page >= self.numberOfScrollViewPages) return;
/* On récupère la référence vers la view contenu dans le tableau des tableview */
UIViewController *aViewController = [self.viewControllersArray objectAtIndex:page];
/* Si la vue récupérée est nulle */
if ((NSNull *)aViewController == [NSNull null])
{
switch (page)
{
case 0:
[self configureEventDescriptionViewController];
[self.viewControllersArray replaceObjectAtIndex:page withObject:self.myEventDescriptionViewController];
aViewController = self.myEventDescriptionViewController;
break;
case 1:
[self configureListOfContactViewController];
[self.viewControllersArray replaceObjectAtIndex:page withObject:self.myListOfContactViewController];
aViewController = self.myListOfContactViewController;
break;
case 2:
[self configureListOfExpensesCategoryViewController];
[self.viewControllersArray replaceObjectAtIndex:page withObject:self.myListOfExpensesCategoryViewController];
aViewController = self.myListOfExpensesCategoryViewController;
break;
case 3:
[self configureLinkContactViewController];
[self.viewControllersArray replaceObjectAtIndex:page withObject:self.myLinkContactViewController];
aViewController = self.myLinkContactViewController;
default:
break;
}
}
/* Si la superview de la vue est à nil */
if (aViewController.view.superview == nil)
{
[aViewController.view setTranslatesAutoresizingMaskIntoConstraints:NO];
CGRect frame;
frame.size.height = self.myScrollView.frame.size.height;
frame.size.width = 320;
frame.origin.x = page * 320;
frame.origin.y = 0;
[aViewController.view setFrame:frame];
/* On ajoute la vue courante à la scrollview */
[self.myScrollView addSubview:aViewController.view];
}
aViewController = nil;}
Часть, где я устанавливаю фрейм кадра viewController, работает, только если я отключу автозапуск
Надеюсь, вы поняли, что я хотел сказать...
Извините за мой плохой английский...
Пуйл