๊ฐ๋ฐ์ ์งํํ๋ ์ค, ๋ฒํผ ์์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๊ณ ์ถ์๋ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ด ๋ฌธ์ ๋ ์ด์ ์ ํด๊ฒฐํ ์ ์ด ์์๋๋ฐ ์ด๋ป๊ฒ ํ๋์ง ๊ธฐ์ต์ด ๋์ง ์์๋ค.
์์ผ๋ก ๋น์ทํ ์ํฉ์ ๋ง์ฃผํ์ ๋ ์ฐพ์๋ณด๊ธฐ ์ํด ์ ๋ฆฌํ๋ค!!
์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ํ๊ธฐ
์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋จผ์ extension์ ์ถ๊ฐํด์ค์ผ ํ๋ค.
import UIKit
extension UIImage {
func resize(targetSize: CGSize) -> UIImage? {
let rect = CGRect(origin: .zero, size: targetSize)
UIGraphicsBeginImageContextWithOptions(targetSize, false, 0.0)
self.draw(in: rect)
let resizedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return resizedImage
}
}
์ด๋ ๊ฒ UIImage ์ต์คํ ์ ์ ๋ง๋ค์ด์ค๋ค.
๊ทธ๋ฆฌ๊ณ , ์ํ๋ ๋ฒํผ์ ์ธํ ํ๋ ๋ถ๋ถ์์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋๋ค.
private let settingButton = UIButton().then {
let imageSize = CGSize(width: 100, height: 100) // 1
let resizedImage = UIImage(systemName: "gearshape")?.resize(targetSize: imageSize) // 2
$0.imageView?.contentMode = .scaleToFill // 3
$0.setImage(resizedImage, for: .normal) // 4
}
(๋๋ then์ ์ฌ์ฉํ์๋ค.)
1. ๋จผ์ , ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ CGSize๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ํด์ค๋ค. ์ ์ฝ๋์์๋ ๋๋น์ ๋์ด ๋ชจ๋ 100์ผ๋ก ์ค์ ๋์๋ค.
2. ๊ทธ๋ฆฌ๊ณ , ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ ์ ํ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ ์๊น ๋ง๋ค์ด๋ extension์ ์ฌ์ฉํด์ค๋ค.
3. ์ด์ ์ด๋ฏธ์ง๋ทฐ์ contentMode๋ฅผ scaleToFill๋ก ์ค์ ํด ์ด๋ฏธ์ง๊ฐ ๋ทฐ์ ๊ฐ๋ ์ฐจ๋๋ก ํ๋ค.
4. UIButton์ ์๋ setImageํจ์๋ฅผ ์ฌ์ฉํด ์ด์ ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์์ค๋ค.
์ด๋ ๊ฒ ํ๋ฉด, UIButton ์์ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๊ทธ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๋ง์๋๋ก ์กฐ์ ํ ์ ์๋ค.
'๐ Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] tableView ์ ์๋ ๊ตฌ๋ถ์ ์์ ๊ธฐ (0) | 2024.11.19 |
---|---|
[Swift] apple login ๊ตฌํํ๊ธฐ (2) | 2024.09.14 |
[swift] DeviceActivity ์ ๋ฆฌ ๋ฐ ์คํฌ๋ฆฐํ์ ์ ๊ทผ ๊ถํ, ์ฑ ์ ํํ๊ธฐ (4) | 2024.09.12 |
[swift] ScreenTime API ๋? (8) | 2024.09.11 |
[Swift] debug ๋ชจ๋์์ release ๋ชจ๋๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ (2) | 2024.07.27 |