<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCaptureSmartFramingMonitor",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCaptureSmartFramingMonitor"
  },
  "title" : "AVCaptureSmartFramingMonitor"
}
-->

# AVCaptureSmartFramingMonitor

An object associated with a capture device that monitors the scene and suggests an optimal framing.

```
class AVCaptureSmartFramingMonitor
```

## Overview

A smart framing monitor observes its associated device for objects of interest entering and exiting the camera’s field of view and recommends an optimal framing for good photographic composition. This framing recommendation consists of an aspect ratio and zoom factor. You may respond to the device’s framing recommendation by calling [`setDynamicAspectRatio(_:completionHandler:)`](/documentation/AVFoundation/AVCaptureDevice/setDynamicAspectRatio(_:completionHandler:)) and setting [`videoZoomFactor`](/documentation/AVFoundation/AVCaptureDevice/videoZoomFactor) on the associated device in whatever order best matches your animation between old and new framings.

## Topics

### Configuring framings

[`var supportedFramings: [AVCaptureFraming]`](/documentation/AVFoundation/AVCaptureSmartFramingMonitor/supportedFramings)

An array of framings supported by the monitor in its current configuration.

[`var enabledFramings: [AVCaptureFraming]`](/documentation/AVFoundation/AVCaptureSmartFramingMonitor/enabledFramings)

An array of framings that the monitor is allowed to suggest.

[`var recommendedFraming: AVCaptureFraming?`](/documentation/AVFoundation/AVCaptureSmartFramingMonitor/recommendedFraming)

The latest recommended framing from the monitor.

### Managing the life cycle

[`var isMonitoring: Bool`](/documentation/AVFoundation/AVCaptureSmartFramingMonitor/isMonitoring)

Yes when the receiver is actively monitoring.

[`func startMonitoring() throws`](/documentation/AVFoundation/AVCaptureSmartFramingMonitor/startMonitoring())

Begins monitoring the device’s active scene and making framing recommendations.

[`func stopMonitoring()`](/documentation/AVFoundation/AVCaptureSmartFramingMonitor/stopMonitoring())

Stops monitoring the device’s active scene and making framing recommendations.

## Relationships

### Conforms To

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

[`Escapable`](/documentation/Swift/Escapable)

[`Copyable`](/documentation/Swift/Copyable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Observable`](/documentation/Observation/Observable)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)