์์ฆ IT ๋์๋ฆฌ ํ๋ก๊ทธ๋ผํผ์์ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ํ๋ ์ค์ด๋ค.
ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด์ ๋ณด์ฌ์ฃผ๋ ํ๋ก์ ํธ์ธ๋ฐ, 1:1 ์ ๋ฐฉํฅ์ ํ๋กํ๊ณผ 3:4 ์ธ๋กํ์ ํ๋กํ ์ฌ์ง ๊ตฌํ์ ๋ณด์ฌ์ฃผ๋ฉด์ ๊ณ ๋ฏผ์ด ์๊ฒผ๋ค. ๋์์ธ ์ ์ด๋ฏธ์ง ๋ฐ์ ๋ฒํผ์ด ๊ฒน์น์ง ์๊ธฐ ์ํด 3:4 ์ธ๋กํ์ height๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํํ ๋ค ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด ์ ์ฅํ๊ณ ๋ณด์ฌ์ค ๋๋ ๊ฐ๋ก ๋์ด๋ฅผ ์ธ๋ก ๊ธธ์ด์ ๋ง์ถ์ด ์ค์ด๋ ํ์์ผ๋ก ๊ตฌํํด์ผ ํ๋ค.
๋ฌผ๋ก , ์ด๋ ๊ฒ ๋ณด์ด๋ ๊ฒ๊ณผ๋ ๋ค๋ฅด๊ฒ ์ด๋ฏธ์ง๋ก ์ ์ฅํ๊ธฐ๋ฅผ ๋๋ฅด๋ฉด 3:4์ ๊ฒฝ์ฐ ์์ ํ์ ์์ด ์นด๋ ์ด๋ฏธ์ง๋ง ์ ์ฅ๋์ด์ผ ํ๋ค. ๋๋ฌธ์ view ๊ณ์ธต์ ์ ์ผ ๋ฐ์์ CardView๋ฅผ ๊ทธ๋ฆฌ๊ณ , ํด๋น UIView๋ฅผ UIImage๋ก ์ ์ฅํ์ฌ ๋ถ๋ฌ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ์์ ์ ์ฐจ์ด ๋๋ฌธ์ UIImage๊ฐ ๋จ์ง ์์๋ค.
๊ณ ๋ฏผํ๋ค ์ฒ์์๋ 3:4์ผ ๋ ํฐํธ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ๊ฒ ํ๋ 1:1์ผ๋์ 3:4์ผ๋ ๋ฌํ๊ฒ ํฐํธ ํฌ๊ธฐ๊ฐ ์ฐจ์ด๊ฐ ์์๊ณ ์ด๋ฅผ ๋ง์ถ๊ธฐ๊ฐ ์ฝ์ง ์์๋ค.
๊ทธ๋ฌ๋ค๊ฐ ์์ ์ ์ฐจ์ด์์ ์๊ฐ์ ์ป์ด viewDidLayoutSubviews๋ฅผ ์ฌ์ฉํ์๋ค.
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if squareImage == nil {
loadCardImages()
}
}
private func loadCardImages() {
//1:1๊ณผ 3:4 UIView์์ ์ด๋ฏธ์ง ์์ฑ
squareImage = squareProfileView.asImage()
rectangleImage = rectangleProfileView.asImage()
//์ด๋ฏธ์ง๋ง ์์ผ๋ฉด ๋๋ UIView๋ ๊ณ์ธต์์ ๋ด๋ฆผ
squareProfileView.removeFromSuperview()
rectangleProfileView.removeFromSuperview()
//๋ณด์ฌ์ง ํ๋กํ ํ์ด์ง์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ 1:1 ์ด๋ฏธ์ง๋ก ๋ฐ๊ฟ
profileImageView.image = squareImage
//์์ฑํ 2๊ฐ์ ์ด๋ฏธ์ง๋ฅผ filemanager์ ์ ์ฅ -> ์ถํ ์นด์นด์คํก ๊ณต์ ํ๊ธฐ ๊ธฐ๋ฅ ๋๋ฌธ์
ImageManager.saveImageToDirectory(identifier: .squareCard, image: squareImage)
ImageManager.saveImageToDirectory(identifier: .rectangleCard, image: rectangleImage)
}
๊ธฐ์กด์๋ subview์ธ CardView์ layout์ด ์์ฑ๋๊ธฐ ์ ์ View๊ฐ ๋ง๋ค์ด์ ธ ๋ฒ๋ ธ๊ธฐ์ ImageView์ ๋น ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ๊ณ ์์๋ค. ๋๋ฌธ์ subview๋ค์ด ๋ค ์์ฑ๋ ํ์ธ viewDidLayoutSubviews()์์ image๋ฅผ ๋ฃ์ด์ฃผ์๋ค.
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621398-viewdidlayoutsubviews
viewDidLayoutSubviews() | Apple Developer Documentation
Notifies the view controller when its view finishes laying out its subviews.
developer.apple.com
์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์๋ค!
https://apps.apple.com/kr/app/roome/id6503616766
roome
๋ฐฉ ํ์ถ ํ๋กํ ์ ์ ์๋น์ค ๋ฃจ๋ฏธ๋ฅผ ํตํด ๋์ ์ฑํฅ์ ๋น ๋ฅด๊ฒ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด ๋ณด์ธ์. ๋ฃจ๋ฏธ๋ ๋ฐฉ ํ์ถ์ ์ข์ํ๋ ์ฌ๋๋ค์ด ๋์ ์ทจํฅ์ ๋ด์ ํ๋กํ์ ์ด๋ฏธ์ง 1์ฅ์ผ๋ก ๋ง๋ค ์ ์๋ ์๋น์ค
apps.apple.com