2

UISegmentedControl で画像をアニメーション化しようとしています。これは私が思いついたものですが、うまくいきません。

コードの最後の行で imageView.layer を _segmentedControl.layer に切り替えると、アニメーション自体は正常に機能します。

私は何が欠けていますか?

        UIImageView *imageView = [[UIImageView alloc] init];
        imageView.image = [_segmentedControl imageForSegmentAtIndex:0];
        CABasicAnimation *scale = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
        scale.duration = 0.25;
        scale.repeatCount = 2;
        scale.autoreverses = YES;
        scale.fromValue = [NSNumber numberWithFloat:1.0];
        scale.toValue = [NSNumber numberWithFloat:0.0];
        [imageView.layer addAnimation:scale forKey:@"scale"];
4

2 に答える 2

2

今後の参考のために、私が思いついた解決策を共有したいと思います。セグメントのイメージをアニメーション化することは不可能に思えますが、代わりに、少なくともセグメント化されたコントロールのサブビューをアニメーション化することができます。

        UIView *subView = [[_segmentedControl subviews] objectAtIndex:0];
        CABasicAnimation *scale = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
        scale.duration = 0.25;
        scale.repeatCount = 1;
        scale.autoreverses = YES;
        scale.fromValue = [NSNumber numberWithFloat:1.0];
        scale.toValue = [NSNumber numberWithFloat:0.95];
        [subView.layer addAnimation:scale forKey:@"scale"];
于 2013-11-03T21:33:32.113 に答える
0

コレクション UIView を使用します。UISegmentedControl はアニメーション化できません

于 2013-11-03T10:46:15.973 に答える