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 回答