[iOS] UIButton ๋ฒ„ํŠผ ๋‚ด ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ •ํ•˜๊ธฐ

2024. 12. 31. 10:00ยท๐ŸŽ iOS
728x90
๋ฐ˜์‘ํ˜•

๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘, ๋ฒ„ํŠผ ์•ˆ์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ๊ณ  ์‹ถ์€๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ด์ „์— ํ•ด๊ฒฐํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํ–ˆ๋Š”์ง€ ๊ธฐ์–ต์ด ๋‚˜์งˆ ์•Š์•˜๋‹ค.

 

์•ž์œผ๋กœ ๋น„์Šทํ•œ ์ƒํ™ฉ์„ ๋งˆ์ฃผํ–ˆ์„ ๋•Œ ์ฐพ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•œ๋‹ค!!

 

์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ •ํ•˜๊ธฐ

์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋จผ์ € 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 ์•ˆ์— ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ๊ทธ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

728x90
๋ฐ˜์‘ํ˜•

'๐ŸŽ iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Swift] .xcconfig ํŒŒ์ผ๋กœ api key ์ €์žฅํ•˜๊ธฐ  (1) 2025.02.14
[iOS][CN] UserDefaults ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2025.02.06
[iOS] tableView ์…€ ์•„๋ž˜ ๊ตฌ๋ถ„์„  ์—†์• ๊ธฐ  (0) 2024.11.19
[iOS] apple login ๊ตฌํ˜„ํ•˜๊ธฐ  (2) 2024.09.14
[iOS] DeviceActivity ์ •๋ฆฌ ๋ฐ ์Šคํฌ๋ฆฐํƒ€์ž„ ์ ‘๊ทผ ๊ถŒํ•œ, ์•ฑ ์ œํ•œํ•˜๊ธฐ  (4) 2024.09.12
'๐ŸŽ iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Swift] .xcconfig ํŒŒ์ผ๋กœ api key ์ €์žฅํ•˜๊ธฐ
  • [iOS][CN] UserDefaults ์‚ฌ์šฉํ•˜๊ธฐ
  • [iOS] tableView ์…€ ์•„๋ž˜ ๊ตฌ๋ถ„์„  ์—†์• ๊ธฐ
  • [iOS] apple login ๊ตฌํ˜„ํ•˜๊ธฐ
coram22
coram22
  • coram22
    ram2 ๐Ÿš—
    coram22
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • ๐Ÿ’ง flutter (22)
      • ๐ŸŽ iOS (18)
      • ๐Ÿฉต CosPro (4)
        • python 2๊ธ‰ (4)
      • ๐Ÿˆ‍โฌ› git (3)
      • ๐Ÿ–ฅ๏ธ react (6)
      • ๐Ÿพ OS (1)
      • ๐Ÿ›œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (6)
      • ๐ŸŒƒ computer vision (6)
      • ๐Ÿ“š ๋ฐฑ์ค€ (4)
      • ๐Ÿฃ My Story (1)
      • ๐Ÿ’ป else (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿˆโ€โฌ› github ๐Ÿˆโ€โฌ›
    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๐Ÿฑ Github ๐Ÿฑ
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์˜ค๋ธ”์™„
    Flutter codelab
    ๊ณต์‹๋ฌธ์„œ
    Git
    Swift
    ์ปด๋„ค
    FLUTTER
    Python
    IOS
    SwiftUI
    2๊ธ‰
    OpenCV
    ์ค‘๋„ํœดํ•™
    ์ •๋‹ต ๋ฐ ํ•ด์„ค
    UIKit
    React
    Computer Vision
    Xcode
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    dart
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
coram22
[iOS] UIButton ๋ฒ„ํŠผ ๋‚ด ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ •ํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”