Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 스위프트
- uiscrollview
- swiftUI
- Xcode
- Clean Code
- collectionview
- ios
- UITextView
- HIG
- 리팩토링
- clean architecture
- rxswift
- Observable
- 클린 코드
- 애니메이션
- map
- MVVM
- Refactoring
- ribs
- 리펙터링
- RxCocoa
- tableView
- UICollectionView
- Human interface guide
- SWIFT
- uitableview
- swift documentation
- combine
- Protocol
- 리펙토링
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] View를 UIImage로 변환(캡쳐하기), 이미지 공유하기 기능 (카톡, 메세지, 메모 등) 본문
iOS 응용 (swift)
[iOS - swift] View를 UIImage로 변환(캡쳐하기), 이미지 공유하기 기능 (카톡, 메세지, 메모 등)
jake-kim 2020. 11. 23. 21:11
View를 이미지로 변환 & 공유하기
- View를 UIImage로 변환
extension UIView {
func transfromToImage() -> UIImage? {
UIGraphicsBeginImageContextWithOptions(bounds.size, isOpaque, 0.0)
defer {
UIGraphicsEndImageContext()
}
if let context = UIGraphicsGetCurrentContext() {
layer.render(in: context)
return UIGraphicsGetImageFromCurrentImageContext()
}
return nil
}
}
- 이미지 공유하기
let vc = UIActivityViewController(activityItems: [image], applicationActivities: nil)
vc.excludedActivityTypes = [.saveToCameraRoll] // 이 코드가 없다면, 공유하기 화면에서 "save image"를 누를시 crash발생
present(vc, animated: true)
- save image기능을 넣으려면, info.plist에 아래 시스템 팝업 정보를 추가해야 가능
- Storyboard
- 전체 코드
//
// ViewController.swift
// TestCapture
//
// Created by 김종권 on 2020/11/23.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var myView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnShare(_ sender: Any) {
guard let image = myView.transfromToImage() else {
return
}
let vc = UIActivityViewController(activityItems: [image], applicationActivities: nil)
vc.excludedActivityTypes = [.saveToCameraRoll] //
present(vc, animated: true)
}
}
extension UIView {
func transfromToImage() -> UIImage? {
UIGraphicsBeginImageContextWithOptions(bounds.size, isOpaque, 0.0)
defer {
UIGraphicsEndImageContext()
}
if let context = UIGraphicsGetCurrentContext() {
layer.render(in: context)
return UIGraphicsGetImageFromCurrentImageContext()
}
return nil
}
}
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] JGProgressHUD 프레임워크 (iOS 로딩 뷰, loader, loading) (0) | 2020.11.26 |
---|---|
[iOS - swift] 버튼에 loading 넣기 (loader), MaterialComponents (0) | 2020.11.26 |
[iOS - swift] CoreData 사용 (protocol 이용, in-memory 개념) (2) | 2020.11.23 |
[iOS - swift] Firestore 연동, 사용 방법 (0) | 2020.11.21 |
[iOS - swift] Firebase/Database연동, Firebase 데이터베이스 (0) | 2020.11.21 |
Comments