Я пытаюсь анимировать по экрану горизонтальную полосу с градиентом цвета. Для простоты я решил сделать png полностью расширенного бара, присвоить его UIImageView и (попытаться) изменить его размер, используя анимацию UIView. Проблема в том, что в «закрытом» состоянии изображения часть отображаемого изображения не является той частью, которую я хочу. Изображение устроено так, что от L до R происходит градиент от белого до красного. Правая сторона (около 20 пикселей) сплошная красная и является частью, которую я хочу показать, когда панель «рухнула». Я пытаюсь расширить изображение примерно на 100 пикселей до его полной ширины. Я сослалась на «Купить сейчас» пример моего кода, как это казалось уместным «iPhone SDK: UIImageView - Collapsing animation
UIButton AppStore buy button animation
Мой код:
[UIView beginAnimations:@"barAnimation" context:nil];
[UIView setAnimationDuration:0.6];
CGRect barFrame = bookBar.bounds;
if (fExtendBar)
{
barFrame.origin.x -= 100;
barFrame.size.width += 100;
}
else
{
barFrame.origin.x += 100;
barFrame.size.width -= 100;
}
bookBar.frame = barFrame;
[UIView commitAnimations];
Я чувствую, что это должно быть возможно, возможно, установив» offsetOfImage «для отображения в UIImageView, но я не могу заставить его работать. Кроме того, я заметил, что поведение похоже на то, что происходит в Interface Builder при изменении размера изображения. было бы способом переопределить это поведение программно. Любые предложения (включая другие подходы) приветствуются.
Thanks, chris.o.