【问题标题】:MPVolumeView thumb image not CentreMPVolumeView 拇指图像不居中
【发布时间】:2013-02-02 20:04:59
【问题描述】:

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

【问题讨论】:

  • 欢迎 Hitendra,格式良好的问题会吸引更多响应者,因此请尝试使用建议的格式模式(stackoverflow.com/editing-help)来格式化您的问题,并且您还希望在此处查看主题演讲:stackoverflow.com/editing-help 以获得最大回答您的问题,没有任何反对意见。 :)
  • 提问时,请正确格式化,并包含所有相关细节。在这个问题中,不清楚您是在询问您设置的图像的布局,而不是“未正确设置滑块的拇指图像”。这可能意味着许多不同的事情,具体取决于上下文。
  • 另外,如果您找到正确回答您问题的答案,请单击答案左侧的图标将其标记为答案。

标签: iphone ios mpvolumeview


【解决方案1】:

在 MPVolumeView 中,

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

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

更多详情请在此处下载示例代码,

Sample Code

您还可以自定义此卷视图

Help Link

如果您需要,请告诉我。

更新:

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

【讨论】:

  • 我已经下载了您提供链接的示例代码。但在该示例代码中,未设置拇指图像。在我的应用程序中,我设置了无法正确显示的拇指图像。它显示拇指向下几个像素。
  • 是的,我知道我在设备中使用。我有链接tibr.me/2012/07/14/customizing-mpvolumeview-appearance,但我不明白。
  • for (UIButton *button in volumeView.subviews) { if ([button isKindOfClass:[UIButton class]]) { [button setImage:[UIImage imageNamed:@"custom-route-button.png" ] forState:UIControlStateNormal]; [按钮尺寸适合]; } } ------ 这个循环有助于获取每个子视图并在其上设置图像..
  • 我可以确认@Jagdish 发布的最后一个(链接)[tibr.me/2012/07/14/customizing-mpvolumeview-appearance] 完全涵盖了这个问题 - 我确实使用了所描述的信息在我的一个项目的帖子中。
【解决方案2】:

编辑:

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


要设置音量缩略图,您应该使用:

setVolumeThumbImage:forState:

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

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

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

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

你可以使用:

[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,您可以将其设为任何您想要的值。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 2022-09-29
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多