2012-02-07 5 views
1

Я разрабатываю анимированную столбчатую гистограмму, и у меня есть проблемы. Бары показывают масштабную анимацию. В начале все столбцы имеют 1 размер точки и будут масштабироваться до заданной высоты.Масштабировать UIView с градиентом

Дело в том, что я хочу нарисовать градиент в столбцы (они являются подклассами UIView) и хотите, чтобы анимация масштаба пересчитывала градиент.

До сих пор я нарисовал градиент, но когда шкала столбцов градиент не масштабируется с ней. Как видно, высота 1 точки, градиент отображается только как 1 цвет.

Может кто-нибудь дать мне север, чтобы решить эту проблему? установка

ответ

1

Решил проблему!

я использовал шкалу вместо изменения границ вида по .. Был

view.transform = CGAffineTransformMakeScale(1.0, scaleY.floatValue); 

Должно быть

view.bounds = CGRectMake(view.bounds.origin.x, view.bounds.origin.y * scaleY.floatValue, view.bounds.size.width, view.bounds.size.height * scaleY.floatValue); 

Где ScaleY рассчитывалась до того и является NSNumber, который содержит масштабный коэффициент Y. Это не обязательно устанавливать

view.contentMode = UIViewContentModeRedraw; 

Спасибо DarkDusk за помощь.

0

Try в contentMode:

myView.contentMode = UIViewContentModeRedraw; 

Это заставит перерисовку при каждом изменении размера.

+0

не работал. Позвольте мне объяснить лучше. У меня есть область сюжета (это представление), и в качестве подзона области графика у меня есть столбцы (есть также виды). В столбце метода drawRect я рисую градиент. Настройка режима содержимого вызовет drawRect при каждом изменении размера? –

+0

Да, он должен называть 'drawRect:' при каждом изменении размера. Добавьте 'NSLog', чтобы проверить это. Затем дважды проверьте рисунок градиента. – DarkDust

+0

решил, см. Мой ответ выше –