방명록
- app switcher 화면에서 블러 및 이미지 보여주기2023년 03월 20일 00시 01분 08초에 업로드 된 글입니다.작성자: sue24
앱을 처음 만들어보는데다 앵귤러로 만드는 거라서
ios와 안드로이드를 만드는 언어를 몰라서 답답할 때가 꽤 있다
앵귤러 언어 하나로 웹과 앱을 만들 수 있긴 하지만
앱 언어를 알아야만 하는 때가 있다
오늘 만든 기능은 화면 보안? 기능이다
(이런 이름인 줄은 모르겠는데 일단 여기선 화면 보안 기능이라고 말해야지)
난 아이폰을 써 본 적이 없어서 이런 기능이 있는지도 몰랐다
아이폰은 지금 열린 앱을 다 보여주는 창에서
(이게 app swicher화면이라는 것도 몰라서 계속 검색하다 알아냄)
화면 보안이 설정된 앱은 앱의 화면 내용이 안 보이는 기능이다
앱의 설정따라 다른데 아예 화면이 안 보이고 보안 문구가 보이기도 하고
블러가 되기도 하고 다양했다
나는 전체 화면을 블러한 뒤 중앙에 로고 이미지를 띄우기로 했다


이 기능이 애초에 ios에만 있는 기능이라고 해서 xcode에서 작업을 해야 했다
(진짜 맞겠지..? chatgpt3의 도움을 좀 받았는데 얘가 천연덕스럽게 거짓말하기도 한다고 해서 불안불안)
// AppDelegate.swift @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .regular)) func applicationWillResignActive(_ application: UIApplication) { blurView.frame = rootViewController.view.bounds rootViewController.view.addSubview(blurView) let image = UIImage(named: "logo") let imageView = UIImageView(image: image) imageView.frame = CGRect(x: 0, y: 0, width: 200, height: 200) imageView.center = rootViewController.view.center imageView.alpha = 1.0 blurView.contentView.addSubview(imageView) blurView.contentView.bringSubviewToFront(imageView) } func applicationDidBecomeActive(_ application: UIApplication) { blurView.removeFromSuperview() } }- applicationWillResignActive
- app switcher 화면으로 들어갈 때 반응하는 함수
- blurView
- blurView 변수는 바깥에서 선언(2번 함수에서 제거를 해줘야해서)
- blurView를 root에 바운드시킨 뒤, root의 서브뷰로 등록해준다
- imageView
- blurView의 서브뷰라서 굳이 바깥에서 선언하지 않았다
- UIImage의 named는 Assets.scassets에 등록된 것만 사용할 수 있다(pulic/assets에 있다고 되는 거 아님..ㅜ)
- 위치와 크기를 잡은 뒤
- blurView의 서브뷰로 등록해준다(바로 등록하는 게 아니라 contentView에 등록해야 한다!)
- alpha나 bringSubviewToFront는 이미지 등록을 안 하고 이미지가 안 나온다고 이것저것 수를 찾다가 추가된 코드로.. 혹시 안 보이면 이런 방법도 있다는 것을...
- 이미지가 아니라 글을 보이고 싶을 때!
- let phraseLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
phraseLabel.center = rootViewController.view.center
phraseLabel.textAlignment = .center
phraseLabel.text = "SEAM SPACE"
blurView.contentView.addSubview(phraseLabel)
- let phraseLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
- applicationDidBecomeActive
- 다시 화면이 풀 스크린으로 나올 때!
- imageView는 blurView의 서브뷰라서 그냥 blurView만 제거하면 된다
다음글이 없습니다.이전글이 없습니다.댓글 - applicationWillResignActive