2013-02-23 3 views
0

Я новичок в основном сюжете. И недавно я решил добавить анимацию роста бара в мой сюжет. поэтому я последовал инструкциям, которые искали здесь, чтобы реализовать анимацию. Теперь я столкнулся с проблемой: анимация, похоже, не вступила в силу. Делегат: didStopAnimate: (BOOL) возвращается независимо от того, как долго я устанавливаю продолжительность анимации с флагом false. Еще одна вещь, чтобы заявить: в графическом представлении я разместил scrollview под реальным графическим хостингом. это влияет на работу Core-анимации? сюжет появился после навигации с самого стола. Вот некоторые из моих кодов:Добавить анимацию в штриховой график не действует визуально

 if ([plot_type isEqualToString:@"bar"]) { 
     CPTBarPlot *plot = [[CPTBarPlot alloc] init]; 
     //id 
     plot.identifier = [d objectForKey:@"title"]; 
     plot.title = [d objectForKey:@"title"]; 
     plot.lineStyle = barLineStyle; 
     plot.barCornerRadius = 1.2; 
     //set color 
     CPTGradient *gradient = [CPTGradient gradientWithBeginningColor:[CPTColor colorWithCGColor:color_begin] endingColor:[CPTColor colorWithCGColor:color_end]]; 
     gradient.angle = 90.0f; 
     CPTFill *fill = [CPTFill fillWithGradient:gradient]; 
     plot.fill = fill; 


     //bar width 
     double width = [[d objectForKey:@"width"] doubleValue]==0.0?0.6:[[d objectForKey:@"width"] doubleValue]; 
     plot.barWidth = CPTDecimalFromFloat(width); 
     plot.barsAreHorizontal = NO; 
     //need manually stacked 
     if (need_stack && !is_first) { 
      plot.barBasesVary = YES; 
     } else { 
      plot.barBasesVary = NO; 
     } 
     //data source 
     plot.dataSource = self; 
     //delegate 
     plot.delegate = self; 

     CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"]; 
     [anim setDuration:2.0f]; 
     anim.toValue = [NSNumber numberWithFloat:1]; 
     anim.fromValue = [NSNumber numberWithFloat:0.0f]; 
     anim.removedOnCompletion = NO; 
     anim.delegate = self; 
     anim.fillMode = kCAFillModeForwards; 
     [plot addAnimation:anim forKey:(NSString *)plot.identifier]; 

     [graph addPlot:plot toPlotSpace:plotSpace]; 
    } 

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

+0

еще одна вещь, чтобы заявить: в графическом представлении я разместил прокрутку под реальным графическим хостингом. это влияет на работу Core-анимации? –

ответ

1

Объект transformCALayer is CATransform3D struct, а не скалярное значение. Вы должны обернуть его, используя метод NSValue+valueWithCATransform3D:.

+1

Хотя вы можете использовать такие клавиши, как «transform.scale.y», и этот ключ должен быть скалярным значением. Для получения дополнительной информации выполните поиск в документах Xcode в разделе «Расширения кодирования по ключевым словам». –

+0

Привет, прежде всего, спасибо за вашу помощь. Ну, я попробовал transform.scale.y с приведенным выше кодом, но все равно бесполезен. Я попробую решение Эрика позже. Еще раз спасибо за помощь –

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