dar*_*iaa 5 objective-c uikit ios mpvolumeview
每次我MPVolumeView作为子视图添加到我UIViewController的视图中时,都会有一个快速动画(MPVolumeView从左到右展开),看起来非常奇怪.我正在寻找摆脱这个动画的方法,有人遇到过这个问题吗?
我差点接受这是一个MPVolumeView错误,但后来我注意到Apple肯定MPVolumeView在他们的原生音乐应用程序中使用了a ,那里没有奇怪的动画......所以一定有些东西我做错了.
更新:
代码非常简单,但是在评论中请求了,所以这里是:
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(10.f, 0.f, CGRectGetWidth(self.view.frame) - 20.f, 30.f)];
[[UISlider appearanceWhenContainedIn:[MPVolumeView class], nil] setMinimumValueImage:[UIImage imageNamed:@"icon-volumeMin"]];
[[UISlider appearanceWhenContainedIn:[MPVolumeView class], nil] setMaximumValueImage:[UIImage imageNamed:@"icon-volumeMax"]];
volumeView.center = CGPointMake(0.5f * CGRectGetWidth(self.view.frame), 0.5f * CGRectGetHeight(self.view.frame));
volumeView.showsRouteButton = NO;
[self.view addSubview:volumeView];
Run Code Online (Sandbox Code Playgroud)
我在github上做了一个非常简单的项目来解决问题,但你必须在设备上运行它,因为MPVolumeView它不会出现在模拟器上.或者只是看看这个gif:
:
Pat*_*rik 10
删除此行为的一种可能方法是继承MPVolumeView并在之后执行一些额外的工作[super layoutSubviews].
- (void)layoutSubviews
{
[super layoutSubviews];
[self xy_recursiveRemoveAnimationsOnView:self];
}
- (void)xy_recursiveRemoveAnimationsOnView:(UIView *)view
{
[view.layer removeAllAnimations];
for (UIView *subview in view.subviews) {
[self xy_recursiveRemoveAnimationsOnView:subview];
}
}
Run Code Online (Sandbox Code Playgroud)
这将删除所有插入的动画.所以要确保这就是你想要的,因为这太过分了.人们也可以删除position和bounds动画(请参阅参考资料removeAnimationForKey:).
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |