<!--
{
  "availability" : [
    "iOS: 7.0.0 - 26.0.0",
    "iPadOS: 7.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.9.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVMutableVideoCompositionLayerInstruction/setCropRectangle(_:at:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVMutableVideoCompositionLayerInstruction(im)setCropRectangle:atTime:"
  },
  "title" : "setCropRectangle(_:at:)"
}
-->

# setCropRectangle(_:at:)

Sets the crop rectangle  value at a time within the time range of the instruction.

```
func setCropRectangle(_ cropRectangle: CGRect, at time: CMTime)
```

## Parameters

`cropRectangle`

The crop rectangle to be applied at the specified time.

`time`

A time value within the timeRange of the composition instruction.

## Discussion

The origin of the crop rectangle is the top-left corner of the buffer clean aperture rectangle. The crop rectangle is defined in square pixel space, that is, without taking the pixel aspect ratio into account. Crop rectangles extending outside of the clean aperture, are cropped to the clean aperture.

Sets a fixed crop rectangle to apply from `time` until the next time at which a crop rectangle is set; this is the same as setting a flat ramp for that time range.

Before the first specified time for which a crop rectangle is set, the crop rectangle is held constant to <doc://com.apple.documentation/documentation/CoreGraphics/CGRectInfinite> and after the last time for which a crop rectangle is set, the crop rectangle is held constant at that last value.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)