2010-03-18 2 views
1

Я пытаюсь анимировать по экрану горизонтальную полосу с градиентом цвета. Для простоты я решил сделать 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.

ответ

0

Я столкнулся с немного более сложной версией той же проблемы. Вы пытались использовать CALayer и устанавливаете свойство contentGravity?

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