swift随机矩形,java画随机矩形生成两个

1,java画随机矩形生成两个因为在未清空的情况下,调用了两次paint(Graphics)
2,swift画图画矩形虚线圆和半圆import UIKitclass JYJYBouncedCouponsViewCellBgView: UIView//一定要在这里设置 背景色, 不要再draw里面设置,override init(frame: CGRect)super.init(frame: frame)self.backgroundColor = UIColor.clear} required init?(coder aDecoder: NSCoder)fatalError("init(coder:) has not been implemented")} override func draw(_ rect: CGRect)// 获取上下文guard let context = UIGraphicsGetCurrentContext() elsereturn} //画一个矩形, 带圆角的,填充色为FFE4C3,切圆角5UIColor.init(hexColor: "FFE4C3").set()context.addPath(UIBezierPath(roundedRect: rect, cornerRadius: 5).cgPath)context.fillPath()//填充色setFillColor , 画线的颜色setStrokeColor//context.setFillColor(UIColor.init(hexColor: "FFE4C3").cgColor) // 画虚线/**设置起始和结束位置**/let startPointX: CGFloat = rect.size.width - 97let staerPointY: CGFloat = 0let endPointX: CGFloat = rect.size.width - 97let endPointY: CGFloat =rect.size.heightlet path = CGMutablePath()path.move(to: CGPoint(x: startPointX, y: staerPointY))path.addLine(to: CGPoint(x: endPointX, y: endPointY))context.addPath(path) context.setStrokeColor(UIColor.init(hexColor: "FF8E00").cgColor)context.setLineWidth(1)/*phase参数表示在第一个虚线绘制的时候跳过多少个点lengths的值{10,10}表示先绘制10个点,再跳过10个点,如此反复如果把lengths值改为{10, 20, 10},则表示先绘制10个点 , 跳过20个点,绘制10个点 , 跳过10个点,再绘制20个点,如此反复*/context.setLineDash(phase: 0, lengths: [5,5])context.strokePath() // 画半圆UIColor.clear.set()/***设置圆心位置***/let circleY: CGFloat =0let topCirclePoint: CGPoint = CGPoint(x: rect.size.width - 97, y: circleY)let bottomCenterPoint: CGPoint = CGPoint(x: rect.size.width - 97, y: rect.size.height)let topCircle = UIBezierPath(arcCenter: topCirclePoint, radius: 5, startAngle: -CGFloat.pi, endAngle: CGFloat.pi, clockwise: true)let bottpmCircle = UIBezierPath(arcCenter: bottomCenterPoint, radius: 5, startAngle: -CGFloat.pi, endAngle: CGFloat.pi, clockwise: true)context.setBlendMode(.clear)context.addPath(topCircle.cgPath)context.addPath(bottpmCircle.cgPath)context.fillPath()}}
3 , swift是什么东西SWIFT 全称是Society for Worldwide Interbank Financial Telecommu-nication 全世界银行间金融电信学会 "SWIFT号"是银行参加这些联盟所赋予的代号,可以到当地银行查询,因为国际汇款、转账等交易都需要经国外代理行,所以需要加入银行的这些组织,便于操作 。【swift随机矩形,java画随机矩形生成两个】
4,iOS 编程中 如何使用 Swift 和 CAGradientLayer 绘制这个矩形// 覆盖drawRect方法,你可以在此自定义绘画和动画- (void)drawRect:(CGRect)rect//An opaque type that represents a Quartz 2D drawing environment.//一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画CGContextRef context = UIGraphicsGetCurrentContext();/*写文字*/CGContextSetRGBFillColor (context,1, 0, 0, 1.0);//设置填充颜色UIFont*font = [UIFont boldSystemFontOfSize:15.0];//设置[@"画圆:" drawInRect:CGRectMake(10, 20, 80, 20) withFont:font];[@"画线及孤线:" drawInRect:CGRectMake(10, 80, 100, 20) withFont:font];[@"画矩形:" drawInRect:CGRectMake(10, 120, 80, 20) withFont:font];[@"画扇形和椭圆:" drawInRect:CGRectMake(10, 160, 110, 20) withFont:font];[@"画三角形:" drawInRect:CGRectMake(10, 220, 80, 20) withFont:font];[@"画圆角矩形:" drawInRect:CGRectMake(10, 260, 100, 20) withFont:font];[@"画贝塞尔曲线:" drawInRect:CGRectMake(10, 300, 100, 20) withFont:font];[@"图片:" drawInRect:CGRectMake(10, 340, 80, 20) withFont:font];/*画圆*///边框圆CGContextSetRGBStrokeColor(context,1,1,1,1.0);//画笔线的颜色CGContextSetLineWidth(context, 1.0);//线的宽度//void CGContextAddArc(CGContextRef c,CGFloat x, CGFloat y,CGFloat radius,CGFloat startAngle,CGFloat endAngle, int clockwise)1弧度=180°/π (≈57.3°) 度=弧度×180°/π 360°=360×π/180 =2π 弧度// x,y为圆点坐标,radius半径,startAngle为开始的弧度,endAngle为 结束的弧度,clockwise 0为顺时针 , 1为逆时针 。CGContextAddArc(context, 100, 20, 15, 0, 2*PI, 0); //添加一个圆CGContextDrawPath(context, kCGPathStroke); //绘制路径//填充圆,无边框CGContextAddArc(context, 150, 30, 30, 0, 2*PI, 0); //添加一个圆CGContextDrawPath(context, kCGPathFill);//绘制填充//画大圆并填充颜UIColor*aColor = [UIColor colorWithRed:1 green:0.0 blue:0 alpha:1];CGContextSetFillColorWithColor(context, aColor.CGColor);//填充颜色CGContextSetLineWidth(context, 3.0);//线的宽度CGContextAddArc(context, 250, 40, 40, 0, 2*PI, 0); //添加一个圆//kCGPathFill填充非零绕数规则,kCGPathEOFill表示用奇偶规则,kCGPathStroke路径,kCGPathFillStroke路径填充,kCGPathEOFillStroke表示描线,不是填充CGContextDrawPath(context, kCGPathFillStroke); //绘制路径加填充/*画线及孤线*///画线CGPoint aPoints[2];//坐标点aPoints[0] =CGPointMake(100, 80);//坐标1aPoints[1] =CGPointMake(130, 80);//坐标2//CGContextAddLines(CGContextRef c, const CGPoint points[],size_t count)//points[]坐标数组,和count大小CGContextAddLines(context, aPoints, 2);//添加线CGContextDrawPath(context, kCGPathStroke); //根据坐标绘制路径//画笑脸弧线//左CGContextSetRGBStrokeColor(context, 0, 0, 1, 1);//改变画笔颜色CGContextMoveToPoint(context, 140, 80);//开始坐标p1//CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1,CGFloat x2, CGFloat y2, CGFloat radius)//x1,y1跟p1形成一条线的坐标p2,x2,y2结束坐标跟p3形成一条线的p3,radius半径,注意, 需要算好半径的长度,CGContextAddArcToPoint(context, 148, 68, 156, 80, 10);CGContextStrokePath(context);//绘画路径//右CGContextMoveToPoint(context, 160, 80);//开始坐标p1//CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1,CGFloat x2, CGFloat y2, CGFloat radius)//x1,y1跟p1形成一条线的坐标p2 , x2,y2结束坐标跟p3形成一条线的p3,radius半径,注意, 需要算好半径的长度,CGContextAddArcToPoint(context, 168, 68, 176, 80, 10);CGContextStrokePath(context);//绘画路径//右CGContextMoveToPoint(context, 150, 90);//开始坐标p1//CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1,CGFloat x2, CGFloat y2, CGFloat radius)//x1,y1跟p1形成一条线的坐标p2,x2,y2结束坐标跟p3形成一条线的p3,radius半径,注意, 需要算好半径的长度,CGContextAddArcToPoint(context, 158, 102, 166, 90, 10);CGContextStrokePath(context);//绘画路径//注,如果还是没弄明白怎么回事,请参考:http://donbe.blog.163.com/blog/static/138048021201052093633776//*画矩形*/CGContextStrokeRect(context,CGRectMake(100, 120, 10, 10));//画方框CGContextFillRect(context,CGRectMake(120, 120, 10, 10));//填充框//矩形,并填弃颜色CGContextSetLineWidth(context, 2.0);//线的宽度aColor = [UIColor blueColor];//blue蓝色CGContextSetFillColorWithColor(context, aColor.CGColor);//填充颜色aColor = [UIColor yellowColor];CGContextSetStrokeColorWithColor(context, aColor.CGColor);//线框颜色CGContextAddRect(context,CGRectMake(140, 120, 60, 30));//画方框CGContextDrawPath(context, kCGPathFillStroke);//绘画路径//矩形,并填弃渐变颜色//关于颜色参考http://blog.sina.com.cn/s/blog_6ec3c9ce01015v3c.html//http://blog.csdn.net/reylen/article/details/8622932//第一种填充方式,第一种方式必须导入类库quartcore并#import <QuartzCore/QuartzCore.h> , 这个就不属于在context上画 , 而是将层插入到view层上面 。那么这里就设计到Quartz Core 图层编程了 。CAGradientLayer *gradient1 = [CAGradientLayer layer];gradient1.frame = CGRectMake(240, 120, 60, 30);gradient1.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor,(id)[UIColor grayColor].CGColor,(id)[UIColor blackColor].CGColor,(id)[UIColor yellowColor].CGColor,(id)[UIColor blueColor].CGColor,(id)[UIColor redColor].CGColor,(id)[UIColor greenColor].CGColor,(id)[UIColor orangeColor].CGColor,(id)[UIColor brownColor].CGColor,nil];[self.layer insertSublayer:gradient1 atIndex:0];//第二种填充方式CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();CGFloat colors[] =1,1,1, 1.00,1,1,0, 1.00,1,0,0, 1.00,1,0,1, 1.00,0,1,1, 1.00,0,1,0, 1.00,0,0,1, 1.00,0,0,0, 1.00,};CGGradientRef gradient = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));//形成梯形,渐变的效果CGColorSpaceRelease(rgb);//画线形成一个矩形//CGContextSaveGState与CGContextRestoreGState的作用/*CGContextSaveGState函数的作用是将当前图形状态推入堆栈 。之后,您对图形状态所做的修改会影响随后的描画操作,但不影响存储在堆栈中的拷贝 。在修改完成后,您可以通过CGContextRestoreGState函数把堆栈顶部的状态弹出 , 返回到之前的图形状态 。这种推入和弹出的方式是回到之前图形状态的快速方法,避免逐个撤消所有的状态修改;这也是将某些状态(比如裁剪路径)恢复到原有设置的唯一方式 。*/CGContextSaveGState(context);CGContextMoveToPoint(context, 220, 90);CGContextAddLineToPoint(context, 240, 90);CGContextAddLineToPoint(context, 240, 110);CGContextAddLineToPoint(context, 220, 110);CGContextClip(context);//context裁剪路径,后续操作的路径//CGContextDrawLinearGradient(CGContextRef context,CGGradientRef gradient, CGPoint startPoint, CGPoint endPoint,CGGradientDrawingOptions options)//gradient渐变颜色,startPoint开始渐变的起始位置,endPoint结束坐标,options开始坐标之前or开始之后开始渐变CGContextDrawLinearGradient(context, gradient,CGPointMake(220,90) ,CGPointMake(240,110),kCGGradientDrawsAfterEndLocation);CGContextRestoreGState(context);// 恢复到之前的context//再写一个看看效果CGContextSaveGState(context);CGContextMoveToPoint(context, 260, 90);CGContextAddLineToPoint(context, 280, 90);CGContextAddLineToPoint(context, 280, 100);CGContextAddLineToPoint(context, 260, 100);CGContextClip(context);//裁剪路径//说白了 , 开始坐标和结束坐标是控制渐变的方向和形状CGContextDrawLinearGradient(context, gradient,CGPointMake(260, 90) ,CGPointMake(260, 100),kCGGradientDrawsAfterEndLocation);CGContextRestoreGState(context);// 恢复到之前的context//下面再看一个颜色渐变的圆CGContextDrawRadialGradient(context, gradient, CGPointMake(300, 100), 0.0, CGPointMake(300, 100), 10, kCGGradientDrawsBeforeStartLocation);/*画扇形和椭圆*///画扇形,也就画圆,只不过是设置角度的大?。纬梢桓錾刃?aColor = [UIColor colorWithRed:0 green:1 blue:1 alpha:1];CGContextSetFillColorWithColor(context, aColor.CGColor);//填充颜色//以10为半径围绕圆心画指定角度扇形CGContextMoveToPoint(context, 160, 180);CGContextAddArc(context, 160, 180, 30,-60 * PI / 180, -120 * PI / 180, 1);CGContextClosePath(context);CGContextDrawPath(context, kCGPathFillStroke); //绘制路径//画椭圆CGContextAddEllipseInRect(context, CGRectMake(160, 180, 20, 8)); //椭圆CGContextDrawPath(context, kCGPathFillStroke);/*画三角形*///只要三个点就行跟画一条线方式一样,把三点连接起来CGPoint sPoints[3];//坐标点sPoints[0] =CGPointMake(100, 220);//坐标1sPoints[1] =CGPointMake(130, 220);//坐标2sPoints[2] =CGPointMake(130, 160);//坐标3CGContextAddLines(context, sPoints, 3);//添加线CGContextClosePath(context);//封起来CGContextDrawPath(context, kCGPathFillStroke); //根据坐标绘制路径/*画圆角矩形*/float fw = 180;float fh = 280;CGContextMoveToPoint(context, fw, fh-20);// 开始坐标右边开始CGContextAddArcToPoint(context, fw, fh, fw-20, fh, 10);// 右下角角度CGContextAddArcToPoint(context, 120, fh, 120, fh-20, 10); // 左下角角度CGContextAddArcToPoint(context, 120, 250, fw-20, 250, 10); // 左上角CGContextAddArcToPoint(context, fw, 250, fw, fh-20, 10); // 右上角CGContextClosePath(context);CGContextDrawPath(context, kCGPathFillStroke); //根据坐标绘制路径/*画贝塞尔曲线*///二次曲线CGContextMoveToPoint(context, 120, 300);//设置Path的起点CGContextAddQuadCurveToPoint(context,190, 310, 120, 390);//设置贝塞尔曲线的控制点坐标和终点坐标CGContextStrokePath(context);//三次曲线函数CGContextMoveToPoint(context, 200, 300);//设置Path的起点CGContextAddCurveToPoint(context,250, 280, 250, 400, 280, 300);//设置贝塞尔曲线的控制点坐标和控制点坐标终点坐标CGContextStrokePath(context);/*图片*/UIImage *image = [UIImage imageNamed:@"apple.jpg"];[image drawInRect:CGRectMake(60, 340, 20, 20)];//在坐标中画出图片//[image drawAtPoint:CGPointMake(100, 340)];//保持图片大小在point点开始画图片,可以把注释去掉看看CGContextDrawImage(context, CGRectMake(100, 340, 20, 20), image.CGImage);//使用这个使图片上下颠倒了,参考http://blog.csdn.net/koupoo/article/details/8670024//CGContextDrawTiledImage(context, CGRectMake(0, 0, 20, 20), image.CGImage);//平铺图}@end5,什么是SWIFTswift是society for worldwide interbank financial telecommunication 中文是“全球银行金融通信学会” swift code是“银行代码”,拥有这些代码的银行都是swift的成员,每家银行都有独一无二的代号,通俗地说,这是一般在银行之间办理转汇时需要提供的“银行代码” 。SWIFT是“环球同业银行金融电讯协会”的英文简称 。凡该协会的成员银行都有自己特定的SWIFT代码 , 即SWIFT CODE 。在电汇时,汇出行按照收款行的SWIFT CODE发送付款电文,就可将款项汇至收款行 。一般只有市级分行才有独立的SWIFT代码 。绝大多数国内银行的市级分行还是有SWIFT的号码的 。不同地区的代码不同 。6,swift怎么比较两个结构体实例是否相等可以参考下面的程序,只要实现Comparable协议就可以进行比较:--- main.swift ---import Foundationstruct Person : Comparablelet name : Stringinit(name : String)self.name = name}}func < (lhs: Person, rhs: Person) -> Boolreturn lhs.name < rhs.name}func == (lhs: Person, rhs: Person) -> Boolreturn lhs.name == rhs.name}let paul = Person(name: "Paul")let otherPaul = Person(name: "Paul")let ben = Person(name: "Ben")print(paul > otherPaul)// falseprint(paul <= ben)// falseprint(paul == otherPaul) // true

    推荐阅读