• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

IOS Swift3 基本图形绘制

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


import UIKit


class ViewController: UIViewController {


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //状态栏大小
        let statusbar_width =  UIApplication.shared.statusBarFrame.width
        let statusbar_height = UIApplication.shared.statusBarFrame.height
        
        //屏幕大小,包括状态栏
        //let screen_width = UIScreen.main.bounds.width
        let Screen_height = UIScreen.main.bounds.height
        
        let viewRect = CGRect(x: 0, y: statusbar_height, width: statusbar_width, height: Screen_height - statusbar_height )
        let view1 = MyView(frame: viewRect)
        self.view.addSubview(view1)
    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}




class MyView: UIView {
    override init(frame: CGRect) {
        super.init(frame: frame)
        //把背景色设为透明
        self.backgroundColor = UIColor.green
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func draw(_ rect: CGRect) {
        //获取画笔上下文
        let context:CGContext =  UIGraphicsGetCurrentContext()!
        context.setAllowsAntialiasing(true) //抗锯齿设置
        
        //绘制点 或 实心圆
        context.fillEllipse( in: CGRect(x: 10, y: 10, width: 2, height: 2))
        context.fillEllipse( in: CGRect(x: 15, y: 10, width: 1, height: 1))
        context.fillEllipse( in: CGRect(x: 20, y: 10, width: 0.5, height: 0.5))
        
        //绘制直线
        context.setStrokeColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1 );//设置画笔颜色方法一
        context.setLineWidth(1);//线条宽度
        context.move(to: CGPoint(x: 10, y: 40))//开始点位置
        context.addLine(to: CGPoint(x: 100, y: 40))//结束点位置
        context.strokePath();
        
        //绘制虚线
        context.setLineWidth(1);
        let dashArray: [CGFloat] = [2, 6,4,2 ]
        context.setLineDash(phase: 1, lengths: dashArray )
        context.move(to: CGPoint(x: 120, y: 40))//开始点位置
        context.addLine(to: CGPoint(x: 180, y: 40))//结束点位置
        context.strokePath();
        
        context.setLineDash(phase: 1, lengths: [1,1] )//还原点类型
        context.move(to: CGPoint(x: 200, y: 40))//开始点位置
        context.addLine(to: CGPoint(x: 260, y: 40))//结束点位置
        context.strokePath();
        
        //绘制曲线
        context.setLineDash(phase: 0, lengths: [1,0] )//还原点类型
        
        context.move(to: CGPoint(x: 10, y: 80))//开始点位置
        context.addCurve(to: CGPoint(x: 150, y: 80), control1: CGPoint(x: 50, y: 90), control2: CGPoint(x: 90, y: 70))
        context.strokePath();
        
        context.move(to: CGPoint(x: 160, y: 80))//开始点位置
        context.addQuadCurve(to: CGPoint(x: 250, y: 80), control: CGPoint(x: 200, y: 65))
        context.strokePath();
        
        //画圆
        context.setLineWidth(0.5);//线条宽度
        context.setStrokeColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1);
        context.addEllipse(in: CGRect(x: 10, y: 120, width: 20, height: 20)); //画圆 x,y左上角坐标
        context.strokePath() //关闭路径
        
        //画圆弧,单位弧度,clockwise: 顺时针计算,弧度 = 角度 * π / 180 x,y中心点坐标
        context.setStrokeColor( UIColor.red.cgColor );//设置画笔颜色方法二
        context.addArc(center: CGPoint(x: 50, y: 130), radius: 10, startAngle: 0, endAngle: CGFloat(90 * Double.pi/180), clockwise: true )
        context.strokePath() //关闭路径
        context.addArc(center: CGPoint(x: 70, y: 130), radius: 10, startAngle: 0, endAngle: CGFloat(90 * Double.pi/180), clockwise: false )
        context.strokePath() //关闭路径
        
        //绘制矩形
        context.setStrokeColor( UIColor.gray.cgColor );
        context.addRect(CGRect(x: 100, y: 120, width: 30, height: 20 ))
        context.strokePath();
        
        //字符串 x,y左上角坐标
        let strTxt:String = "你好!"
        strTxt.draw(at: CGPoint(x: 10, y: 160), withAttributes: nil )
        
        let textAttributes: [String: AnyObject] = [
            NSForegroundColorAttributeName : UIColor.blue.cgColor,
            NSFontAttributeName : UIFont.systemFont(ofSize: 8 )
        ]
        strTxt.draw(at: CGPoint(x: 80, y: 160), withAttributes: textAttributes )
        
        //绘制图片
        let path = Bundle.main.path(forResource: "fj", ofType: "png")
        let srcImage = UIImage(contentsOfFile: path!)
        srcImage?.draw(at: CGPoint(x: 10, y: 200))
        srcImage?.draw(in: CGRect(x: 100, y: 200, width: 50, height: 50 ))
    }

}





鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
如何在swift中实现oc中的分类发布时间:2022-07-13
下一篇:
算法与数据结构(十七) 基数排序(Swift 3.0版)发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap