我正在使用MPVolumeView
我的应用程序。我已经自定义了,MPVolumeView
但存在一个问题,因为滑块的拇指图像设置不正确。
2 回答
编辑:
所以事实证明,当使用 时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,您可以将其设为任何您想要的值。
我不会完全解释这部分,因为它不是您问题的直接一部分。
在 MPVolumeView 中,
它始终将音量值与您的设备硬件音量值一起使用。
如果您的硬件的最小音量为 0.2,那么您的 MPVolumeView 将滑块设置为 0.2。它使用 0.0 到 1.0 的音量值。
有关更多详细信息,请在此处下载示例代码,
您还可以自定义此卷视图
如果您需要,请告诉我。
更新 :
这里还有一个有用的链接,MPVolumeView