4

我正在使用MPVolumeView我的应用程序。我已经自定义了,MPVolumeView但存在一个问题,因为滑块的拇指图像设置不正确。

4

2 回答 2

0

编辑:

所以事实证明,当使用 时MPVolumeView,iOS 实际上并没有像与其他图像一样垂直对齐您设置的图像。解决方案是创建一个稍微偏移的图像(如果您需要说服它图像更大,您可以始终使用 alpha)并将该图像仅用于MPVolumeView. 这有点痛苦,但效果很好。通常,您希望新图像的偏移量在 2-4 像素之间。


要设置音量拇指图像,您应该使用:

setVolumeThumbImage:forState:

例如,如果您有一个名为的图像myThumbImage.png和一个名为的 MPVolumeView myVolumeView,您将使用:

[myVolumeView setVolumeThumbImage:
    [UIImage imageNamed:@"myThumbImage"] forState:UIControlStateNormal];

这将找到您项目中存在的任何命名图像myThumbImage.png,并将其用于滑块拇指。你应该注意这张图片是你想要的尺寸,25x25 通常有点大,但不是一个糟糕的起点。

当您点击它时, AppleUISlider会变暗并更改按钮的外观。为此,请创建另一个看起来您想要的图像(这可能是相同的图像,只是更暗或完全不同的图像),并将其设置为突出显示时为拇指显示的图像(即当你点击它时会发生什么)。

您将使用以下方法完成此操作:

[myVolumeView setVolumeThumbImage:
    [UIImage imageNamed:@"VolumeThumbHighlighted"] forState:UIControlStateHighlighted];

它将找到命名的图像VolumeThumbHighlighted.png并将其用于该目的。


请注意,您还可以使用可拉伸图像设置左右轨道图像,方法与典型图像略有不同UISlider。您将使用以下代码:

[myVolumeView setMinimumVolumeSliderImage:[[UIImage imageNamed:@"LeftTrackImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 0)]forState:UIControlStateNormal];
[myVolumeView setMaximumVolumeSliderImage:[[UIImage imageNamed:@"RightTrackImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 4)]forState:UIControlStateNormal];

这会将图像设置为边缘插入 4,您可以将其设为任何您想要的值。

我不会完全解释这部分,因为它不是您问题的直接一部分。

于 2013-05-08T15:42:47.967 回答
0

在 MPVolumeView 中,

它始终将音量值与您的设备硬件音量值一起使用。

如果您的硬件的最小音量为 0.2,那么您的 MPVolumeView 将滑块设置为 0.2。它使用 0.0 到 1.0 的音量值。

有关更多详细信息,请在此处下载示例代码,

示例代码

您还可以自定义此卷视图

帮助链接

如果您需要,请告诉我。

更新 :

这里还有一个有用的链接,MPVolumeView

于 2013-02-18T12:17:43.173 回答