Returns a scaled rectangle that maintains the specified aspect ratio within a bounding rectangle.


func AVMakeRect(aspectRatio: CGSize, insideRect boundingRect: CGRect) -> CGRect



The width and height ratio (aspect ratio) you want to maintain.


The bounding rectangle you want to fit into.

Return Value

Returns a scaled CGRect that maintains the aspect ratio specified by aspectRatio that fits within boundingRect.


Use this function when attempting to fit the presentation size of a player item object’s content within the bounds of another CALayer. Use the returned CGRect as the player layer’s frame property value. For example:

let aspectRatio = CGSize(width: 1920, height: 1080)
playerLayer.frame = AVMakeRect(aspectRatio: aspectRatio, insideRect: superLayer.bounds)

See Also

Configuring Player Layer Values

var player: AVPlayer?

The player for which the player layer displays visual output.

var isReadyForDisplay: Bool

A Boolean value that indicates whether the first video frame has been made ready for display for the current item of the associated player.

var videoGravity: AVLayerVideoGravity

A value that specifies how the video is displayed within a player layer’s bounds.

struct AVLayerVideoGravity

A value that defines how the video is displayed within a layer’s bounds rectangle.

var videoRect: CGRect

The current size and position of the video image as displayed within the receiver's bounds.

var pixelBufferAttributes: [String : Any]?

The client requirements for the visual output displayed in the player layer during playback.