自定义 iPhone UISlider,看起来像 iPod 应用音量控制

发布于 2024-10-22 20:39:38 字数 894 浏览 5 评论 0原文

所以我有一个 UISlider ,我用一些图像对其进行自定义:

UIImage *stetchLeftTrack = [[UIImage imageNamed:@"slider_blue.png"] stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"slider_white.png"] stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
[volumeSlider setThumbImage: [UIImage imageNamed:@"slider_blob.png"] forState:UIControlStateNormal];
[volumeSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[volumeSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];

我实际上只是尝试复制 iPod 应用程序中看到的音量控件(据我所知,您无法在代码中做到这一点)。因为我使用的是高分辨率图像,所以它在应用程序上绘制了巨大的所有内容,如下所示: 在此处输入图像描述

当实际想要的效果是: 在此处输入图像描述

如果我缩小实际图像,我会失去质量,而且看起来很垃圾且模糊!所以我想用代码来做到这一点,但有点迷失了......

So I have a UISlider which I'm customizing with some images:

UIImage *stetchLeftTrack = [[UIImage imageNamed:@"slider_blue.png"] stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"slider_white.png"] stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
[volumeSlider setThumbImage: [UIImage imageNamed:@"slider_blob.png"] forState:UIControlStateNormal];
[volumeSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[volumeSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];

I'm actually just trying to copy the volume controls as seen in the iPod app (which AFAIK you can't do in code). Because I'm using high res images, it draws everything huge on the app like so:
enter image description here

When actually the desired effect is:
enter image description here

If I scale down the actual images, I lose the quality and it looks rubbish and blurry! So I'm looking to do this in code but got a bit lost...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

澉约 2024-10-29 20:39:38

iPhone 的高分辨率图像是视网膜显示屏吗?如果是这样,您应该使用名称 [email protected]< /code> 用于高分辨率图像,slider_blue.png 用于普通分辨率图像。 @2x 图像(令人惊讶)是两倍大小。

然后,SDK 将根据设备使用正确的 SDK。

Are the high res images for the iPhone retina desplay? If so, you should use the names [email protected] for the high res image and slider_blue.png for a normal res image. The @2x image is (suprise), twice the size.

The SDK will then use the correct one based on the device.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文