2013-10-25 2 views
0

Я пытался имитировать переход экрана экрана приложения Yahoo в Yahoo, я не мог понять, что это за переход. Любая подсказка?не мог понять, какие переходы uiview используются в приложении погоды Yahoo

Я очень ценю вас время. Благодаря

Edit:

У меня есть SlideView ctrler, который имеет подвид. У sliderview есть изображение, а subview - текст. Когда я делаю салфетки, текстовое представление с текстом должно перемещаться и перетаскивать его с помощью ctrler с меньшей скоростью, и этот стажер должен начать перетаскивание в следующем ctrler view, который является экземпляром слайдера Ctrler.

+1

Не все используют приложение погоды Yahoo (которое также может измениться). Добавьте изображение или два или лучше описывайте, чего вы пытаетесь достичь. – rmaddy

ответ

0

Это не по умолчанию, но я достиг сходного с ним в моем старом приложении

  1. Регистрация жест на ваш взгляд, и при обнаружении установить isFromLeftSide соответственно

  2. вызов следующее. сделать тонкую настройку этого в соответствии с вашими требованиями

    [self.view addSubview:mySlidingView]; 
         mySlidingView.frame = // set offscreen frame, in the direction you want it to appear from depending on flag isFromLeftSide 
         [UIView animateWithDuration:8.0 
             animations:^{ 
              mySlidingView.frame = // desired end location 
               }]; 
    
1

Существует нет встроенного в переходный период, который делает это для вас (я предполагаю, что вы говорите об изображениях, которые переходящих их frame/center на другой чем само представление). Вам, вероятно, придется написать это самостоятельно. Требуется некоторое базовое знакомство с распознавателями жестов и анимацией просмотра.

Основной эффект заключается в одновременной корректировке свойства center для двух изображений при изменении frame этих видов (или их суперспектаклей). (Или вы можете достичь этого, имея вид изображения, contentMode - UIViewContentModeCenter и просто изменение frame.) Я предлагаю вам начать с некоторых простых тестов эффекта и построить оттуда.

Например, я создал сцену, которая имеет две точки зрения изображения, чьи autolayout ограничения были определены следующим образом:

 
H:|[leftImageView][rightImageView]| 
V:|[leftImageView]| 
V:|[rightImageView]| 

Я тогда определил ограничение ширины для leftImageView, и подключил его к IBOutlet для это ограничение, например leftImageWidthConstraint. Я тогда UIPanGestureRecognizer, которые могли бы справиться с жест, просто изменяя этот leftImageWidthConstraint соответствующим образом (и с автоматической компоновки, остальная часть кадра рассчитывается автоматически для меня от этого):

- (void)handlePan:(UIPanGestureRecognizer *)gesture 
{ 
    CGPoint translate = [gesture translationInView:gesture.view]; 
    static CGFloat width; 

    if (gesture.state == UIGestureRecognizerStateBegan) 
    { 
     width = self.leftImageWidthConstraint.constant; 
    } 

    CGFloat newWidth = width + translate.x; 

    if (newWidth < 0) 
     newWidth = 0; 
    else if (newWidth > self.view.bounds.size.width) 
     newWidth = self.view.bounds.size.width; 

    self.leftImageWidthConstraint.constant = newWidth; 

    // if you let go, animate the views to their final position 

    if (gesture.state == UIGestureRecognizerStateEnded) 
    { 
     // if more than half way, set left view's target width to take up full width, 
     // otherwise set left view's target width to zero 

     if (newWidth > (self.view.bounds.size.width/2.0)) 
      newWidth = self.view.bounds.size.width; 
     else 
      newWidth = 0; 

     // animate the changing of the constraint (and thus the `frame`) accordingly 

     self.leftImageWidthConstraint.constant = newWidth; 
     [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 
      [self.view layoutIfNeeded]; 
     } completion:nil]; 
    } 
} 

Таким образом, как я панорамирование по горизонтали, два изображения по центру в пределах своих стриженых кадров:

enter image description here

Это очень простая реализация идеи. Тем не менее, есть тонна деталей реализации (пользовательский контейнер против подзаголовков, автозапуск против нет и т. Д.), Поэтому, пока вы не ответите на некоторые из этих вопросов, будет трудно быть более конкретным.

+0

Спасибо за ценный ответ. Это направление, в котором я иду. Хотя мне нужно использовать поведение вложений.Я отредактировал ответ с подробным описанием. – pa12

 Смежные вопросы

  • Нет связанных вопросов^_^