Я пытаюсь анимировать по экрану горизонтальную полосу с цветным градиентом. Для простоты я решил создать png полностью расширенной панели, назначить ее UIImageView и (попытаться) анимировать изменение ее размера с помощью анимации UIView. Проблема в том, что в «закрытом» состоянии изображения часть показа изображения не та, которую я хочу. Изображение расположено так, что от L до R возникает градиент белого от красного. Правая сторона (около 20 пикселей) имеет сплошной красный цвет и является той частью, которую я хочу показать, когда полоса «свернута». Я пытаюсь расширить изображение примерно на 100 пикселей до полной ширины. Я сослался на пример кнопки «Купить сейчас» для моего кода, так как он показался мне актуальным "
Анимация кнопки покупки UButton AppStore
Мой код:
[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, но я не могу заставить его работать. Кроме того, я заметил, что такое поведение согласуется с тем, что происходит в Интерфейсном Разработчике при изменении размера изображения. С другой стороны, я думаю, что был бы способ переопределить это поведение программно. Любые предложения (включая другие подходы) приветствуются.
Спасибо,
chris.o.