티스토리 뷰
금융 등 개인 정보를 담는 앱들은 백그라운드에서 앱 화면을 가리는 기능을 사용한다.
iOS 13 미만을 지원하는 앱에서는 appDelegate에서,
이상의 버전을 지원하는 앱에서는 sceneDelegate에서 해당 메소드들을 구현해주자.
// 액티브 상태가 되었을 경우(다시 앱으로 돌아왔을 때)
func sceneDidBecomeActive(_ scene: UIScene) {
callBgImage(false)
}
// 홈 바를 쓸어 올리거나 홈버튼을 두번 눌렀을 경우
func sceneWillResignActive(_ scene: UIScene) {
}
// 백그라운드 상태였다가 돌아왔을 때
func sceneWillEnterForeground(_ scene: UIScene) {
callBgImage(false)
}
// 백그라운드 상태로 갔을 때
func sceneDidEnterBackground(_ scene: UIScene) {
callBgImage(true)
}
func callBgImage(_ isBackground: Bool) {
let TAG_BG_IMG = -101
let backgroundView = window?.viewWithTag(TAG_BG_IMG)
if isBackground {
if backgroundView == nil {
//여기서 보여주고 싶은 뷰 자유롭게 생성
let bgView = UIView()
bgView.frame = UIScreen.main.bounds
bgView.tag = TAG_BG_IMG
bgView.backgroundColor = .secondarySystemBackground
let appIcon = UIImageView()
appIcon.frame = CGRect(x: bgView.layer.bounds.width / 2 - 64, y: bgView.layer.bounds.height / 2 - 64, width: 128, height: 128)
appIcon.image = UIImage(named: "bgView")
bgView.addSubview(appIcon)
window?.addSubview(bgView)
}
} else {
if let backgroundView = backgroundView {
backgroundView.removeFromSuperview()
}
}
}
'Dev > iOS' 카테고리의 다른 글
Tip : Swift Package Manager 사용하기 (Xcode 13) (0) | 2022.01.13 |
---|---|
Dev : Storyboard 없이 첫 화면을 구성하는 법 (0) | 2022.01.13 |
Tip : 배경을 Gradient로 색칠하기 (0) | 2021.12.06 |
Tip : 디테일한 다크모드 적용하기 (1) | 2021.02.06 |
Dev : segue로 넘겨 받은 데이터를 다시 전달하는 법 (0) | 2021.01.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- how to remove border of tabbarcontroller
- BOJ
- 백트래킹
- 자료구조
- swift
- SceneDelegate
- 하노이탑이동순서
- how to start without storyboard
- 알고리즘
- c++
- DP
- PS
- TIP
- pyrebase
- Javascript
- D3
- 파이썬
- 정보시각화
- ios
- CSV
- SVG
- 곱셈의 역원
- HTML
- CSS
- Python
- DFS
- xcode
- Array
- 백준
- 보라매사옥
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함