如何使用CGAffine正确缩小UIProgressView?

时间:2013-05-29 20:22:09

标签: ios cgaffinetransform uiprogressview

我想基本上降低UIProgressView的高度以创建一个“更薄”的进度条。我不确定我是否只是错误地使用CGAffine,或者我需要完全使用不同的方法。这是我的代码,prog1,prog2和prog3都是已经定义的进度视图:

CGFloat sx1 = 1.0f;
CGFloat sy1 = 1.0f;
CGFloat sx2 = 1.0f;
CGFloat sy2 = 0.5f;
CGFloat sx3 = 1.0f;
CGFloat sy3 = 2.0f;

self.prog1.transform = CGAffineTransformMakeScale(sx1, sy1);
self.prog2.transform = CGAffineTransformMakeScale(sx2, sy2);
self.prog3.transform = CGAffineTransformMakeScale(sx3, sy3);

prog1正常显示,好像没有对它做任何事情。 prog2,而不是显示1个瘦条,显示两个瘦条,一个在另一个上面。 prog3,而不是显示1个胖条,显示一个胖条的上半部分,底部被切掉。我试着弄乱了框架,但这似乎也没有太大的作用。

我注意到有时在测试时会立即这样做。但有时,我会得到我想要的结果。但是,在旋转设备后,进度视图将始终陷入“不良”位置。

1 个答案:

答案 0 :(得分:1)

看来这种显示更薄的进度条的方法确实无效,我的实验让我得出了同样的结论。 可用的进度条有一些第三方实现,有些似乎更受欢迎,即KOAProgressBarDDProgressView,但其中没有一个似乎能够实现非常小的进度条。

我完成了我自己的'进度视图',它只是一个带有两种填充类型的矩形(在内部浏览器的地址栏下需要一个细的进度线,类似于新的YouTube webapp或chrome上的加载指示器)浏览器iOS应用)。一旦我完成,我将确保发布它here