为什么UIProgressview进度条不可调整大小?

时间:2012-05-24 13:21:40

标签: objective-c xcode progress-bar uiprogressview

来自Bavarious'关于UIProgressViews here:的问题

我尝试实现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];

Original images and progress bar results

我尝试将我的图像变量从进度图像切换到轨迹图像,看看是否可能是不可调整大小的图像(它不应该是因为它们是完全相同的图像,只是不同的颜色) 。除非我这样做,否则轨迹图像再次完美地调整大小并且进度图像是拉伸的图像。有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:12)

您的可调整大小的内容可能不应该是{0,1,0,1}。在您的情况下,它们看起来应该是{0,0,0,0}UIEdgeInsetsZero

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

blue red

...然后将它们扔进UIProgressView

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

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

当进度视图放置在progress为0.5的用户界面上时,我得到了这个:

progress view

对我来说很好。