我想创建一个简单的自定义加载栏,其中包含两个我拥有的图像:一个用于纯色背景的图像和一个用于对角线的图像。我是iOS的新手,所以我的方法是创建一个自定义UIView,它使用两个UIImageViews,每个图像一个,带有动画块,从左到右移动对角线图像。
我正在采用这种方法,因为我已经熟悉了UIImageViews和动画块。我的问题是......
非常感谢你的智慧!
答案 0 :(得分:3)
看看WNProgressView,它可能会做你需要的。
答案 1 :(得分:2)
您可以使用以下两种方式实现此目的:
1-将此类导入您的代码#import <QuartzCore/QuartzCore.h>
然后将以下两行添加到-(void)viewDidLoad
方法中,以便在加载视图时条形图将被舍入,或者您可以在希望条形图开始对其进行舍入的位置添加它。
barImageView.layer.cornerRadius = 10.0f;
barImageView.layer.masksToBounds = YES;
2-另一种方法是使用以下代码:
-(void)roundCorners:(UIRectCorner)rectCorner forView:(UIView*)view
{
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds
byRoundingCorners:rectCorner
cornerRadii:CGSizeMake(20.0, 20.0)];
// Create the shape layer and set its path
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = view.bounds;
maskLayer.path = maskPath.CGPath;
// Set the newly created shape layer as the mask for the image view's layer
view.layer.mask = maskLayer;
}
添加以下行和viewDidLoad或您想要开始围绕栏的位置
[self roundCorners:UIRectCornerTopRight|UIRectCornerTopLeft|UIRectCornerBottomRight|UIRectCornerBottomLeft forView:[self.view.subviews objectAtIndex:0] withAngle:10];
答案 2 :(得分:1)
让“纯色背景”视图成为“对角线”imageView的容器视图。 (对角线是背景的子视图)
然后在对角线子视图上设置'clipsToBounds'= YES,并根据需要重新调整框架。 (假设您的对角线imageView代表100%进展)
如果您的加载栏imageView没有圆角,您可以使用CALayer的cornerRadius属性。
imageView.layer.cornerRadius = 6.0f;
答案 3 :(得分:0)
对iOS新手来说,使用UIProgressView可能会更好。它可能看起来不太好,但它的用途相同,而且更容易。还有UIActivityIndicatorView,这是一个像齿轮一样旋转的圆圈。两者都比自定义解决方案更容易使用。