3

来自 Bavarious 关于UIProgressViews 的问题:

我尝试实现 Dave DeLong 所说的内容,并且按照他在示例中展示的方式进行了所有操作,但是当我运行程序时,如果我尝试更改进度的值,我的进度条就会变成拉伸的图像。然而,轨道图像完美地调整大小并沿轨道重复。出于某种原因,进度并没有沿着进度条执行此操作。

UIImage * load = [[UIImage imagedNamed:@"load.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 1)];
UIImage * track = [[UIImage imageNamed:@"track.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 1)]; 
[progressbar progressImage:load];
[progressbar trackImage:track];
[progressbar setProgress:0.5];

原始图像和进度条结果

我尝试将我的图像变量从进度图像切换到轨道图像,看看它是否是不可调整大小的图像(它不应该是因为它们是完全相同的图像,只是颜色不同)。除了当我这样做时,轨道图像再次完美调整大小,进度图像是拉伸的图像。有谁知道为什么会发生这种情况?

4

1 回答 1

12

您的可调整大小的帽子插图可能不应该是{0,1,0,1}. 在您的情况下,它们看起来应该是{0,0,0,0}, 或UIEdgeInsetsZero.

我剪掉了红色和蓝色的小方块:

蓝色的 红色的

...然后把它们扔进一个UIProgressView

UIImage *red = [[UIImage imageNamed:@"red"] resizableImageWithCapInsets:UIEdgeInsetsZero];
UIImage *blue = [[UIImage imageNamed:@"blue"] resizableImageWithCapInsets:UIEdgeInsetsZero];

[pv setTrackImage:blue];
[pv setProgressImage:red];

当进度视图以 0.5 放置在 UI 上progress时,我得到了这个:

进度视图

在我看来很好。

于 2012-05-24T21:42:32.807 回答