ios개발/개념 정리

<스위프트> UIBezierPath

studying develop 2020. 3. 9. 21:42

view에 여러가지를 draw할때 많이 나온다. 근데 내가 사용하는 입장에서 UIBezierPath에 그리고 그걸 뷰에 넣기만 하면 되던데 , 왜그런지 모르겠었다....

 

 

 

Class

UIBezierPath

A path that consists of straight and curved line segments that you can render in your custom views.

 

직선과 곡선 조각으로 이루어진 패스라 한다, 내 커스텀 뷰 안에서 랜더링 할 수 있다함. 근데 항상 듣는 말인데 렌더링이 도대체 뭔지 잘 모르겠음. 내 생각에 이런거 같은데, 대충 밑그림을 알려주면 그걸 화면에 그리는게 렌더링 같다. ㅋㅋ;;;;ㅋ;ㅋ;ㅋ;

Overview

You use this class initially to specify just the geometry for your path. Paths can define simple shapes such as rectangles, ovals, and arcs or they can define complex polygons that incorporate a mixture of straight and curved line segments. After defining the shape, you can use additional methods of this class to render the path in the current drawing context.

 

이 클래스를 내 경로에 기하 모양을 정하기 위해서 사용합니다. 패스로 직사각형, 타원, 호같은 간다한 도형의 모양을 정의할 수 있고, 직선과 곡선 조각이 합쳐진 다각형도 정의할 수 있습니다. 모양을 정의하고 난후에 이 클래스의 추가 메소드를 사용하여 현재 드로잉 콘텍스트에 렌더링 할 수 있습니다. (드로잉 콘텍스트~ 이게 그림 그려지는 위치인가 보다.) 

 

drawing Contexts에 대해서 찾았다. 드로잉 컨텍스트들은 렌더러를 사용해서 프로그램 적인 드로잉 명령어들을 비트맵이나, pdf이미지로 변환한다.!!

 

A UIBezierPath object combines the geometry of a path with attributes that describe the path during rendering. You set the geometry and attributes separately and can change them independent of one another. After you have the object configured the way you want it, you can tell it to draw itself in the current context. Because the creation, configuration, and rendering process are all distinct steps, Bézier path objects can be reused easily in your code. You can even use the same object to render the same shape multiple times, perhaps changing the rendering options between successive drawing calls.

 

UIBezierPath 객체는 경로의 기하들을 렌더링 중에 표현되는 속성들과 결합합니다. 구현자인 나는 기하와 속성을 분리하고 서로에 독립적으로 변경해야 합니다. 내가 원하는 대로 객체를 설정하고, 나는 현재 컨텍스트에 그리라고 명령하면 됩니다. 왜냐하면 생성, 설정, 그리고 렌더링 과정들이 각각이 개별적인 단계입니다.!! 베지얼 패스 객체를 코드에서 쉽게 사용할 수 있습니다. 심지어 동일한 객체를 여러번 렌더링 하는데 사용할 수 있습니다, 아마도 연속적인 그리기 호출들 사이에서 렌더링 옵션을 변경할 수 있을 것입니다.!!!

 

You set the geometry of a path by manipulating the path’s current point. When you create a new empty path object, the current point is undefined and must be set explicitly. To move the current point without drawing a segment, you use the move(to:) method. All other methods result in the addition of either a line or curve segments to the path. The methods for adding new segments always assume you are starting at the current point and ending at some new point that you specify. After adding the segment, the end point of the new segment automatically becomes the current point.

A single Bézier path object can contain any number of open or closed subpaths, where each subpath represents a connected series of path segments. Calling the close() method closes a subpath by adding a straight line segment from the current point to the first point in the subpath. Calling the move(to:) method ends the current subpath (without closing it) and sets the starting point of the next subpath. The subpaths of a Bézier path object share the same drawing attributes and must be manipulated as a group. To draw subpaths with different attributes, you must put each subpath in its own UIBezierPath object.

After configuring the geometry and attributes of a Bézier path, you draw the path in the current graphics context using the stroke() and fill() methods. The stroke() method traces the outline of the path using the current stroke color and the attributes of the Bézier path object. Similarly, the fill() method fills in the area enclosed by the path using the current fill color. (You set the stroke and fill color using the UIColor class.)

In addition to using a Bézier path object to draw shapes, you can also use it to define a new clipping region. The addClip() method intersects the shape represented by the path object with the current clipping region of the graphics context. During subsequent drawing, only content that lies within the new intersection region is actually rendered to the graphics context..