2015-07-06 4 views
0

У меня есть UIView, который я хочу показать при нажатии кнопки, прямо сейчас я пытаюсь инициализировать его вне экрана в viewDidLayoutSubviews, когда кнопка нажата, она будет скользить по экрану, это плохо практика иметь это? Есть ли другой способ оживить этот вид скольжения, не имея рамки вне экрана?Неплохая практика запуска uiview за пределами экрана?

+3

Это прекрасно. – rmaddy

ответ

1

Я не вижу вреда, делая это по-своему. Другой подход может быть таким:

  • Создайте ваш просмотр и сокройте его.
  • Добавьте его в качестве подсмотра и поместите его туда, куда вы хотите, чтобы он приземлился после завершения анимации.
  • Затем нанесите преобразование на него:

    aView.transform = CGAffineTransformMakeTranslation(dx, dy);

    Допустим, вы хотите, чтобы переместить его за пределы экрана по горизонтали. Таким образом, dx будет примерно 400 точек. Я бы предложил рассчитать его на основе [UIScreen mainScreen].bounds.size.width для совместимости с каждым экраном.

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

    [UIView animateWithDuration:0.5 animations:^{ 
         aView.transform = CGAffineTransformIdentity; 
        }]; 
    

    Это будет волшебно скользить это место.

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