-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Add Live Text interaction to your app
Live Text?
이미지에서 텍스트를 식별하여 복사, 붙여넣기, 검색, 번역 등의 텍스트에서 지원하는 작업들을 해줄 수 있도록
도와주는 기능

Live Text 지원 기능
- 이미지를 분석하고 사용자들이 콘텐츠와 상호작용하는 기능을 제공
- 텍스트를 선택해서 복사하고 색인 및 번역과 같은 동작을 수행
- 데이터 감지 흐름 작업 제공
- QR코드와 상호작용
Live Text API
- Swift 에서 이용이 가능하다.
- iOS 16 부터 이용이 가능하다.
- Live Text API의 사용 과정
- 먼저 이미지를 Image Analyzer 로 입력을 받는다.
- 비동기로 이미지를 분석한다
- Image Analysis 객체 생성되고
- Image AnalysisInteraction 또는
- ImageAnalysisOverlayView 로 전달이 된다.
코드로 확인하면
import UIKit
import VisionKit
class LiveTextDemoController: BaseController, ImageAnalysisInteractionDelegate, UIGestureRecognizerDelegate {
let analyzer = ImageAnalyzer()
let interaction = ImageAnalysisInteraction()
override func viewDidLoad() {
super.viewDidLoad()
imageview.addInteraction(interaction)
}
override var image: UIImage? {
didSet {
interaction.preferredInteractionTypes = []
interaction.analysis = nil
analyzeCurrentImage()
}
}
func analyzeCurrentImage() {
if let image = image {
Task {
let configuration = ImageAnalyzer.Configuration([.text, .machineReadableCode])
do {
let analysis = try await analyzer.analyze(image, configuration: configuration)
if let analysis = analysis, image == self.image {
interaction.analysis = analysis;
interaction.preferredInteractionTypes = .automatic
}
}
catch {
// Handle error…
}
}
}
}
}- ImageAnalyzer와 ImageAnalysisInteraction 변수를 선언한다.
- analyzeCurrentImage() 함수를 생성 후 이미지가 일치하는지를 검사한다.
- 이미지가 일치한다면 configuration 에 Text를 찾고 분석하라고 전달을 한다.
- if let 에서는 이미지의 변동 유무와 분석 성공 유무를 확인 후에5.
확인이 되었다면 interaction 에 분석 결과를 전달하고 preferredInteractionTypes 을 지정한다.
Tips and tricks
Preferred interaction types
- 라이브 텍스트를 선택하고 감지하는 타입들을 의미한다.
interaction.preferredInteractionTypes = .automatic- 텍스트 선택과 더불어 데이터 감지기를 제공하는 타입
interaction.preferredInteractionTypes = .texstSelection- 텍스트만 선택하는 타입
interaction.preferredInteractionTypes = .dataDetectors- 텍스트를 선택하지 않고 데이터 감지기만 제공하는 타입
Supplementary Interface ( 보완 인터페이스 )
-
Live Text 의 버튼
-
Quick Actions
분석에서 나온 데이터 감지기를 나타낸다. ( 복사 등 ) -
Supplementary Interface Custom
interaction.isSupplementaryInterfaceHidden = true- 텍스트 선택은 허용하지만 Live Text 버튼을 보여주지 않는 경우
interaction.supplementaryInterfaceContentInsets = UIEdgeInsets(top: 0, left: 12, bottom: 18, right: 12)- 기존 앱 콘텐츠 요소와 LiveText 버튼이 겹치는 경우의 위치 조절
supplemenratyInterfaceFont = UIFont.init(name: , size: )- Quick Actions의 텍스트 폰트 변경












