iOS 기기에서는 3D 터치라는 기능을 사용하여 사용자가 앱 내에서 더 나은 상호작용을 할 수 있습니다. 3D 터치를 사용하면 앱 아이콘을 강한 강압으로 누르는 것 외에도 다른 많은 기능을 사용할 수 있습니다. 이 기능 중 하나는 PeekPop이라고 불리는 기능으로, 사용자가 앱의 특정 콘텐츠를 볼 수 있도록 해줍니다.
이번 포스트에서는 Swift 언어를 사용하여 PeekPop을 활용한 3D 터치 기능을 구현하는 방법을 알아보겠습니다.
1. 미리보기 등록
PeekPop을 사용하기 위해서는 우선 해당 뷰 컨트롤러에서 미리보기 등록을 해야 합니다. PeekPop은 UIViewControllerPreviewingDelegate 프로토콜을 준수하는 클래스를 사용하여 동작합니다. AppDelegate.swift 파일을 열고 다음 코드를 추가해 미리보기 등록을 해보세요.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let viewController = ViewController()
let previewingContext = self.window?.rootViewController?.registerForPreviewing(with: viewController, sourceView: viewController.view)
return true
}
위 코드에서 ViewController는 PeekPop을 구현할 뷰 컨트롤러를 의미합니다. 이제 미리보기 등록이 완료되었습니다.
2. 특정 콘텐츠에 PeekPop 적용하기
이제 뷰 컨트롤러에 특정 콘텐츠에 PeekPop을 적용해보겠습니다. ViewController.swift 파일을 열고 다음 코드를 추가해주세요.
import UIKit
class ViewController: UIViewController, UIViewControllerPreviewingDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// PeekPop 제스처 등록
self.registerForPreviewing(with: self, sourceView: self.view)
}
// PeekPop 제스처 핸들러
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
// PeekViewController 생성
guard let peekViewController = storyboard?.instantiateViewController(withIdentifier: "peekViewController") as? PeekViewController else {
return nil
}
// 피크 뷰 컨트롤러에 전달할 데이터 설정
let data = "This is a peek preview"
peekViewController.data = data
// 피크 뷰 컨트롤러 크기 설정
peekViewController.preferredContentSize = CGSize(width: 0.0, height: 300)
return peekViewController
}
// Pop 제스처 핸들러
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
self.show(viewControllerToCommit, sender: self)
}
}
위 코드에서 PeekViewController는 PeekPop 기능이 적용되는 콘텐츠를 나타내는 뷰 컨트롤러를 의미합니다. PeekViewController에서는 원하는 콘텐츠나 데이터를 표시할 수 있습니다.
위 코드에서는 PeekPop 제스처 핸들러인 previewingContext(_:viewControllerForLocation:)
메서드를 구현하여 피크 뷰 컨트롤러를 생성하고 데이터와 크기를 설정합니다. 또한 Pop 제스처 핸들러인 previewingContext(_:commit:)
메서드를 구현하여 피크 뷰 컨트롤러를 화면에 표시합니다.
3. 피크 뷰 컨트롤러 생성
이제 피크 뷰 컨트롤러를 생성하여 콘텐츠를 나타내는 뷰를 구성해보겠습니다. Main.storyboard 파일을 열고 뷰 컨트롤러를 추가한 다음 Identity Inspector에서 Class를 PeekViewController로 변경해주세요. 그리고 뷰 컨트롤러에 원하는 콘텐츠를 추가해주세요.
4. 실행 및 테스트
이제 앱을 실행하고 3D 터치로 미리 등록한 뷰 컨트롤러의 특정 콘텐츠를 강압해보세요. PeekViewController가 피크 뷰로 화면에 표시될 것입니다. 또한 피크 뷰를 더 강하게 누르면 해당 콘텐츠로 진입하는 Pop 동작도 확인할 수 있습니다.
이렇게 Swift 언어로 PeekPop을 활용한 3D 터치 기능을 구현하는 방법에 대해 알아보았습니다. 여러분도 이를 참고하여 앱의 상호작용을 보다 향상시켜보세요!