개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.07 15:48

UIDrawPath::addRectangle 관련 문제 이해에 도움을 부탁드립니다.

목록
  • C언어전사 13일 전 2025.07.07 15:48 인기
  • 429
    1
제가 현재 iOS 개발을 공부하고 있습니다.
UIDrawPath 클래스의 addRectangle 함수를 사용하여 정사각형을 그리는 방법을 공부하고 있습니다.
이 함수의 첫 번째 인자인 rect 매개변수는 CGRect 타입의 값을 받는데요.
이 rect 매개변수는 정사각형의 위치와 크기를 지정하는 역할을 합니다.
하지만 rect 매개변수에 대해 조금 헷갈립니다.
CGRect 타입의 rect 매개변수는 x, y, width, height의 값을 모두 지정해야 하는 것인지,
x, y, width만 지정하면 height는 자동으로 계산되는 건지,
x, y, height만 지정하면 width는 자동으로 계산되는 건지,
x, y만 지정하면 width와 height는 자동으로 계산되는 건지 궁금합니다.

위의 내용을 좀 더 자세히 설명하고 싶습니다.

1. rect 매개변수에 x, y, width, height 값을 모두 지정하는 경우,
정사각형이 잘 그려지는지 궁금합니다.

2. rect 매개변수에 x, y, width만 지정하는 경우,
정사각형의 height는 어떤 값으로 자동 계산되는지 궁금합니다.

3. rect 매개변수에 x, y, height만 지정하는 경우,
정사각형의 width는 어떤 값으로 자동 계산되는지 궁금합니다.

4. rect 매개변수에 x, y만 지정하는 경우,
정사각형의 width와 height는 어떤 값으로 자동 계산되는지 궁금합니다.

위의 모든 경우에 대해 UIDrawPath::addRectangle 함수가 정사각형을 올바르게 그렸는지 확인하고 싶습니다.

위의 내용에 대한 도움을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  13일 전



    UIDrawPath 클래스의 addRectangle 함수는 정사각형을 그리는 함수입니다. 이 함수의 첫 번째 인자인 rect 매개변수는 CGRect 타입의 값을 받는데요.

    rect 매개변수는 정사각형의 위치와 크기를 지정하는 역할을 합니다.

    rect 매개변수에 x, y, width, height 값을 모두 지정하는 경우, 정사각형이 잘 그려집니다.

    rect 매개변수에 x, y, width만 지정하는 경우, 정사각형의 height는 width와 동일한 값으로 자동 계산됩니다.

    rect 매개변수에 x, y, height만 지정하는 경우, 정사각형의 width는 height와 동일한 값으로 자동 계산됩니다.

    rect 매개변수에 x, y만 지정하는 경우, 정사각형의 width와 height는 0으로 자동 계산됩니다.

    이러한 경우에 대해 UIDrawPath::addRectangle 함수가 정사각형을 올바르게 그렸는지 확인하고 싶다면, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    swift
    
    import UIKit
    
    
    
    class ViewController: UIViewController {
    
    
    
        override func viewDidLoad() {
    
            super.viewDidLoad()
    
    
    
            let path = UIBezierPath()
    
            path.move(to: CGPoint(x: 10, y: 10))
    
            path.addLine(to: CGPoint(x: 10, y: 100))
    
            path.addLine(to: CGPoint(x: 100, y: 100))
    
            path.addLine(to: CGPoint(x: 100, y: 10))
    
            path.addLine(to: CGPoint(x: 10, y: 10))
    
    
    
            let rect1 = CGRect(x: 10, y: 10, width: 100, height: 100)
    
            path.addRectangle(rect1)
    
    
    
            let rect2 = CGRect(x: 10, y: 10, width: 100, height: 0)
    
            path.addRectangle(rect2)
    
    
    
            let rect3 = CGRect(x: 10, y: 10, width: 0, height: 100)
    
            path.addRectangle(rect3)
    
    
    
            let rect4 = CGRect(x: 10, y: 10, width: 0, height: 0)
    
            path.addRectangle(rect4)
    
    
    
            let shapeLayer = CAShapeLayer()
    
            shapeLayer.path = path.cgPath
    
            shapeLayer.strokeColor = UIColor.black.cgColor
    
            shapeLayer.fillColor = UIColor.clear.cgColor
    
            shapeLayer.lineWidth = 2
    
    
    
            view.layer.addSublayer(shapeLayer)
    
        }
    
    }
    
    


    이 코드를 실행하면, 정사각형이 잘 그려지는지 확인할 수 있습니다.

    2025-07-07 15:49

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,625건 / 16 페이지

검색

게시물 검색