CGPath
绘制波浪
普通
尖峰
圆形
要让基于进度的加载器工作,只需要两个必要的事情
showProgressBasedLoaderWithPath(path:)
或 createProgressBasedLoaderWithPath(path:)
创建加载器progress
属性,该属性从 0.0
到 1.0
有四种主要方法来创建加载器
showProgressBasedLoaderWithPath(path:)
, createProgressBasedLoaderWithPath(path:)
,showLoaderWithPath(path:)
和 createLoaderWithPath(path:)
showLoaderWithPath(path:)
或 showProgressBasedLoaderWithPath(path:)
将调用创建方法,之后将调用 showLoader()
方法。
所以,这只是一个进行所有操作一次的帮助方法。
如果您想创建一个加载器,但不想立即显示它,可以使用 createProgressBasedLoaderWithPath(path:)
或 createLoaderWithPath(path:)
来创建,当您想显示它时,只需调用 showLoader()
示例代码
//PROGRESS BASED:
var loader = WavesLoader.createProgressBasedLoaderWithPath(path)
loader.loaderColor = UIColor.redColor()
...
//Do other stuff
...
loader.showLoader()
//BASIC
var loader = WavesLoader.createLoaderWithPath(path)
loader.loaderColor = UIColor.redColor()
...
//Do other stuff
...
loader.showLoader()
所有这些方法都有一个可选参数版本,您可以将它传递到想要添加加载器的视图中。
showProgressBasedLoaderWithPath(path:onView:)
createProgressBasedLoaderWithPath(path:onView:)
showLoaderWithPath(path:onView:)
createLoaderWithPath(path:onView:)
只需调用方法 removeLoader()
,加载器就会消失,并将其从其父视图中删除。
示例代码
loader.removeLoader()
除了可以定制加载器形状外,您还可以定制加载器的其他属性。请查看列表
Spikes
和 Rounded
加载器的额外属性要将 FillableLoaders
手动添加到您的项目中,只需复制 Source
文件夹中的文件。
let path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, 0, height/2)
CGPathAddLineToPoint(path, nil, width + 100, height/2)
CGPathAddLineToPoint(path, nil, width + 100, height*2)
CGPathAddLineToPoint(path, nil, 0, height*2)
CGPathCloseSubpath(path)
return path
PaintCode 是一个真正的强大 Mac 应用程序,可以做很多事情。您可以绘制事物,然后它会“自动”为您生成代码
在这种情况下,我们可以使用它创建 BezierPaths,并从那里提取 CGPath。
在绘制星形的情况下,它会给我们这个代码
//// Star Drawing
var starPath = UIBezierPath()
starPath.moveToPoint(CGPointMake(180, 25))
starPath.addLineToPoint(CGPointMake(195.16, 43.53))
starPath.addLineToPoint(CGPointMake(220.9, 49.88))
starPath.addLineToPoint(CGPointMake(204.54, 67.67))
starPath.addLineToPoint(CGPointMake(205.27, 90.12))
starPath.addLineToPoint(CGPointMake(180, 82.6))
starPath.addLineToPoint(CGPointMake(154.73, 90.12))
starPath.addLineToPoint(CGPointMake(155.46, 67.67))
starPath.addLineToPoint(CGPointMake(139.1, 49.88))
starPath.addLineToPoint(CGPointMake(164.84, 43.53))
starPath.closePath()
UIColor.grayColor().setFill()
starPath.fill()
我们在这里唯一需要做的事情是从UIBezierPath中提取CGPath,就像这样
let myPath = starPath.CGPath
var myLoader = WavesLoader.showProgressBasedLoaderWithPath(myPath)
我非常喜欢PaintCode的一个功能,即你可以导入一个.svg文件,并且它会创建出它的BezierPath代码。真是太棒了。
例如,就是这样制作的Github和Twitter标志。
所有源代码均受MIT许可证的许可。
如果你使用了它,我很乐意了解。