iOS上是否可以使用从右到左的进度条?

Jam*_*mes 8 cocoa-touch ios

我试过发送[UIProgressView setProgress]负值,但这不起作用.

有没有其他方法来获得从右端填充的进度条?

Kyl*_*yle 11

你可以尝试将你的transform属性设置UIProgressView为一个新的CGAffineTransform,将视图旋转180度并垂直翻转它(以保持"光泽")(见CGAffineTransformMake()CGAffineTransformRotate()).

有点像:

UIProgressView *pv = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleBar];
pv.frame = CGRectMake(10, 100, 300, 11);
CGAffineTransform transform = CGAffineTransformMake(1, 0, 0, -1, 0, pv.frame.size.height); // Flip view vertically
transform = CGAffineTransformRotate(transform, M_PI); //Rotation angle is in radians
pv.transform = transform;
pv.progress = 0.5;
Run Code Online (Sandbox Code Playgroud)

  • 啊,明白了!`pv.transform = CGAffineTransformScale(CGAffineTransformMakeRotation(M_PI),1.0,-1.0);`谢谢! (4认同)

Eva*_*ski 8

你可以旋转UIProgressView:

progressView.transform = CGAffineTransformMakeRotation(DegreesToRadians(180));
Run Code Online (Sandbox Code Playgroud)

在哪里DegreesToRadians:

#define DegreesToRadians(d) ((d) * M_PI / 180.0)
Run Code Online (Sandbox Code Playgroud)

要更改进度值,请使用正数.


小智 5

更简单的版本是水平翻转它.

progressView.transform = CGAffineTransformMakeScale(-1.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)


Jos*_*ner 5

在 iOS 9+ 中,您可以使用semanticContentAttribute

progressView.semanticContentAttribute = .forceRightToLeft