2016-07-16 4 views
-1

Я пытаюсь нарисовать прямоугольник на ощупь. До сих пор у меня есть две части кода, первый - метод, который в настоящее время рисует круг, вторая часть кода добавляет форму для просмотра, как я рисую прямоугольник вместо этого?Swift draw rectangle

func drawRectangle() { 
    // Get the Graphics Context 
    let context = UIGraphicsGetCurrentContext(); 

    // Set the rectangle outerline-width 
    CGContextSetLineWidth(context, 5.0); 

    // Set the rectangle outerline-colour 
    UIColor.redColor().set() 

    // Create Rectangle 

    CGContextAddArc(context, (frame.size.width)/2, frame.size.height/2, (frame.size.width - 10)/2, 0.0, CGFloat(M_PI * 2.0), 1) 

    // Draw 
    CGContextStrokePath(context); 
} 

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    let rectangleCenter = touches.first!.locationInView(view) 

    let rectangleWidth = CGFloat(50) 
    let rectangleHeight = rectangleWidth 

    // Create a new rectangleView 
    let rectangleView = Annotations(frame: CGRectMake(rectangleCenter.x, rectangleCenter.y, rectangleWidth, rectangleHeight), shape: 1) 

    view.addSubview(rectangleView) 
} 

Я попытался следующие:

// Create Rectangle 
     CGContextAddRect(context, CGRectMake((frame.size.width)/2, frame.size.height/2, 40, 40)); 

создает часть верхней левой части прямоугольника с линией сверху и линией вниз слева. Как настроить это как полный прямоугольник?

+2

Если вы посмотрите CGContextAddArc в ссылка CGContext, тогда CGContextAddRect не за горами ... :) –

+0

Привет, Мартин R, я попробовал CGContextAddRect, он дает мне половину прямоугольника – user979331

+2

Тогда вы создаете съел неправильный прямоугольник. Первые два параметра CGRectMake - это начало (верхний левый угол), а не середина. –

ответ

-1

Я был в состоянии решить мою проблему, выполнив следующие действия:

увеличение ширины и высоты здесь:

let rectangleWidth = CGFloat(100) 
let rectangleHeight = rectangleWidth 

и мой метод прямоугольник

func drawRectangle() 
    { 
     // Get the Graphics Context 
     let context = UIGraphicsGetCurrentContext(); 

     // Set the rectangle outerline-width 
     CGContextSetLineWidth(context, 5.0); 

     // Set the rectangle outerline-colour 
     UIColor.redColor().set() 

     // Create Rectangle 
     CGContextAddRect(context, CGRectMake(0, 0, 100, 100)); 

     // Draw 
     CGContextStrokePath(context); 

    }