Core Graphics, an integral part of both Cocoa and Cocoa Touch frameworks, enables developers to render graphical elements on a specified graphical destination. This tutorial focuses on drawing fundamental shapes like rectangles and circles using Xcode 10, designed for iOS 12.

Initial Setup with Xcode

Initiate by opening Xcode to create a new project. Select a Single View App template. For the project name, input ‘IOSDrawShapesTutorial’, and fill in the necessary Organization Name and Identifier. Opt for Swift as the programming language.

Crafting the User Interface

Navigate to the Storyboard, where you’ll place three buttons at the top of the main view, labeled “Lines, Rectangle, Circle”. Below these buttons, drag an ImageView into place. Configure the ImageView’s dimensions using the Size Inspector and ensure that all Auto Layout constraints are properly set.

Implementing Drawing Features

In the ViewController.swift file, establish an IBOutlet for the ImageView. Then, create IBActions for the buttons, assigning each a unique tag (0 for Lines, 1 for Rectangle, and 2 for Circle). These tags will later facilitate the identification of the pressed button.

Drawing Lines, Rectangles, and Circles

Leverage the UIGraphicsImageRenderer class, introduced in iOS 10, which offers closure-based drawing and supports wide color gamuts. Implement methods for drawing lines, rectangles, and circles, with customized attributes like line width and fill color.

// Example of drawing a rectanglefunc drawRectangle() {    let renderer = UIGraphicsImageRenderer(size: CGSize(width: 280, height: 250))    let img = renderer.image { ctx in        let rectangle = CGRect(x: 0, y: 0, width: 280, height: 250)        ctx.cgContext.setFillColor(UIColor.yellow.cgColor)        ctx.cgContext.setStrokeColor(UIColor.gray.cgColor)        ctx.cgContext.setLineWidth(20)        ctx.cgContext.addRect(rectangle)        ctx.cgContext.drawPath(using: .fillStroke)    }    imageView.image = img}

Finalizing and Running the Application

Upon completion of the drawing methods, build and run the application. Interact with each button to observe the rendering of different shapes.

Unique Comparison Table: Core Graphics Features

FeatureDescriptionImplementation Detail
Line DrawingRenders straight lines on the canvas.Uses move(to:) and addLine(to:).
Rectangle DrawingDraws rectangles with specified dimensions.Implements addRect() method.
Circle DrawingCreates circular shapes with adjustable radii.Utilizes addEllipse(in:) function.
Color CustomizationAllows setting of fill and stroke colors.Sets colors using setFillColor() and setStrokeColor().
Line Width AdjustmentAlters the thickness of the lines and borders.Adjusts using setLineWidth().

Unique Bullet Section: Key Takeaways

  • Core Graphics is a versatile API for rendering in iOS;
  • The tutorial demonstrates the use of UIGraphicsImageRenderer for drawing;
  • Different shapes like lines, rectangles, and circles can be drawn and customized;
  • Understanding these basics opens doors to more complex graphic design in iOS apps.

Advanced Techniques in Core Graphics

As you delve deeper into Core Graphics, the realm of advanced drawing techniques unfolds, offering a myriad of possibilities for creating intricate and dynamic graphics. One such technique is the use of gradient fills, which can significantly enhance the visual appeal of your designs. By seamlessly blending colors, gradients can simulate light, depth, and texture, bringing a more realistic and vibrant look to your graphics.

Another advanced feature in Core Graphics is the manipulation of transformations. Transformations allow you to rotate, scale, and skew your graphics, offering a new dimension of creativity. This feature is particularly useful in developing interactive and animated graphics. For example, by applying rotation transformations, you can create a compass or a dial that responds to user interaction. Similarly, scaling transformations can be used to create zoom-in effects on images or graphics, making them appear more dynamic and engaging.

Both gradient fills and transformations require a deep understanding of Core Graphics’ coordinate systems and drawing contexts. As you experiment with these advanced features, you’ll discover new ways to enhance your iOS applications, making them more interactive and visually appealing.

Integrating Core Graphics with UIKit

While Core Graphics is powerful on its own, its true potential is unlocked when used in conjunction with UIKit. This integration allows for the creation of rich and interactive user interfaces. One practical application is the customization of UI elements. For instance, you can draw custom shapes for buttons or create unique progress bars that align with the overall design theme of your app.

Another aspect is the creation of custom animations. By combining Core Graphics drawing capabilities with UIKit’s animation framework, you can create smooth and complex animations. These animations can be used to guide users through your app, provide feedback on user actions, or simply add an element of visual interest.

Moreover, the integration of Core Graphics with UIKit enables the handling of high-resolution displays effectively. By drawing your graphics in a resolution-independent manner, you ensure that your app’s user interface looks sharp and crisp on all devices, regardless of their screen resolution. This is particularly crucial in today’s diverse ecosystem of iOS devices.


This tutorial not only simplifies the complexities of Core Graphics in iOS but also provides a hands-on approach to drawing basic shapes. By mastering these foundational concepts, developers can extend their graphical capabilities, enhancing the user interface and experience in their iOS applications. Embrace the potential of Core Graphics and bring your creative ideas to life.

Leave a Reply