类的介绍
注意:当一个实例对象被创建好之后,必须保证里面所有的非可选属性都有值
// swift 中,类是可以不继承父类的,那它本身就是rootClass |
我就看你皮
注意:当一个实例对象被创建好之后,必须保证里面所有的非可选属性都有值
// swift 中,类是可以不继承父类的,那它本身就是rootClass |
可变数组
let arr: [Any] = [1,2,3] |
不可变数组
let arr: [Any] = [1,2,3] |
当条件表达式为true时,跳过else语句中的内容,执行语句组内容
当条件表达式为false时,执行else语句内容,跳转语句一般是reture,break,continue,throw
//如果一个成年人带了省份证才能上网 |
UIGraphicsBeginImageContextWithOptions(img.size, false, 0.0) |
let path: UIBezierPath = UIBezierPath.init(ovalIn: CGRect(x: 0,y: 0,width: img.size.width,height: img.size.height)) |
path.addClip() |
img.draw(at: CGPoint(x: 0,y: 0)) |
let newImg: UIImage = UIGraphicsGetImageFromCurrentImageContext()! |
UIGraphicsEndImageContext() |
看了前面,大家是不是都想来看看UIBezierPath详解呢,然后开始展示真正的装逼技术撒,其实,看完你就会发现UIBezierPath也就那么回事(先泼一盆冷水)
+ (instancetype) bezierPath; |
/** |
/** |
圆角矩形
应该是没有前言的,但是,尼玛,写了一上午的画图。第二天起来一看全没了,不得不吐槽下Gitbook,又得重复劳动…………
以下操作在均在自定义View的drawRect方法中
CGContextRef ctx = UIGraphicsGetCurrentContext(); |
UIBezierPath *path = [UIBezierPath bezierPath]; |
如果我们想对线条做一些操作,可以用以下这几种方式
> //上下文的状态(线宽颜色)
> CGContextSetLineWidth(ctx, 10);
> //线的交点样式
> CGContextSetLineJoin(ctx, kCGLineJoinRound);
> //线的两头样式
> CGContextSetLineCap(ctx, kCGLineCapRound);
> //设置颜色(要和下文渲染和填充用一样的)
> //[[UIColor redColor] setStroke];
> //一般用这个设置颜色
> [[UIColor redColor] set];
>