0

この形状が他のパスにアニメーション化されない理由に私は困惑しています。私はうまくいったデモCABasicAnimationsを試しました..誰かが素晴らしいだろうアイデアを持っているなら!

#import "AKTabBar.h"

@implementation AKTabBar

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        //customize tab bar
    }
    return self;
}

-(void)awakeFromNib {
    CAShapeLayer* tabBarShape = [CAShapeLayer layer];


    UIBezierPath* discoverPath = [UIBezierPath bezierPath];
    [discoverPath moveToPoint: CGPointMake(0, 98)];
    [discoverPath addLineToPoint: CGPointMake(0, 98)];
    [discoverPath addLineToPoint: CGPointMake(0, -0)];
    [discoverPath addLineToPoint: CGPointMake(27.91, -0)];
    [discoverPath addLineToPoint: CGPointMake(34, 7)];
    [discoverPath addLineToPoint: CGPointMake(39.78, -0)];
    [discoverPath addLineToPoint: CGPointMake(320, -0)];
    [discoverPath addLineToPoint: CGPointMake(320, 98)];
    [discoverPath closePath];


    UIBezierPath* sharePath = [UIBezierPath bezierPath];
    [sharePath moveToPoint: CGPointMake(0, 98)];
    [sharePath addLineToPoint: CGPointMake(0, 98)];
    [sharePath addLineToPoint: CGPointMake(0, -0)];
    [sharePath addLineToPoint: CGPointMake(40, -0)];
    [sharePath addLineToPoint: CGPointMake(47, 7)];
    [sharePath addLineToPoint: CGPointMake(39.78, -0)];
    [sharePath addLineToPoint: CGPointMake(320, -0)];
    [sharePath addLineToPoint: CGPointMake(200, 98)];
    [sharePath closePath];

    tabBarShape.path=discoverPath.CGPath;
    tabBarShape.fillColor = [UIColor redColor].CGColor;

//    UIImageView* menu = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tabBarBackground"]];
    [self.layer addSublayer:tabBarShape];
//    menu.layer.mask=tabBarShape;
//  [ self addSubview:menu];


    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"discoverPath"];
    animation.duration = 4.0;
    animation.toValue = (__bridge id)(sharePath.CGPath);
    [tabBarShape addAnimation:animation forKey:@"discoverPath"];


}


@end
4

1 に答える 1

3

のプロパティをCABasicAnimationアニメーション化しようとしています。ただし、そのようなプロパティはありません。discoverPathCAShapeLayerCAShapeLayer

代わりにこれを行うとどうなりますか?

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];
于 2012-12-29T06:56:33.297 に答える