Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SWIFT
- Alamofire
- ayncAfter
- Android
- 개발
- DispatchTouchEvent
- RecyclerView
- progressbar
- Dropdown
- UIPickerView
- retrofit2
- SplashFragment
- viewpager2
- dispatchQueue
- InAppPurchase
- web
- aab
- CalendarView
- javascript
- CSS
- MemoList
- HTML
- 실행지연
- IOS
- RxJava
- imagepicker
- 스터디
- ViewModel
- MotionEvent
- Kotlin
Archives
- Today
- Total
멜팅비의 개발 공부
[iOS/Swift] UIButton에 이미지와 텍스트 vertical align 본문
반응형
오늘의 예제
버튼 안에 아이콘 이미지와 텍스트가 세로 방향으로 정렬하는 형태로 버튼을 구현하는 방법이다.
예제의 경우, 빨간색 View안에 버튼을 넣어서 모양을 구현했다.
먼저 View 안에 UIButton을 넣고, 위치를 잡은 뒤 필요한 디자인에 따라 아이콘과 텍스트를 설정하면 기본 버튼의 경우 아이콘과 텍스트가 나란히 붙은 모양으로 구현이 된다.
UIButton에 extension을 추가하여 쉽게 구현할 수 있다.
extension UIButton {
func alignTextBelow(spacing: CGFloat = 4.0) {
guard let image = self.imageView?.image else {
return
}
guard let titleLabel = self.titleLabel else {
return
}
guard let titleText = titleLabel.text else {
return
}
let titleSize = titleText.size(withAttributes: [
NSAttributedString.Key.font: titleLabel.font as Any
])
titleEdgeInsets = UIEdgeInsets(top: spacing, left: -image.size.width, bottom: -image.size.height, right: 0)
imageEdgeInsets = UIEdgeInsets(top: -(titleSize.height + spacing), left: 0, bottom: 0, right: -titleSize.width)
}
}
실제 사용할 때는 spacing에 필요한 간격만큼 숫자를 넣어주면 된다.
class ViewController: UIViewController {
@IBOutlet weak var boxView: UIView!
@IBOutlet weak var btnDelete: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
boxView.layer.cornerRadius = 12
btnDelete.alignTextBelow(spacing: 4)
}
}
반응형
'개발 공부 > [iOS 개발]' 카테고리의 다른 글
[iOS/Swift] DropDown 라이브러리 사용하기 (2) | 2022.01.10 |
---|---|
[iOS/swift] UIImagePickerController를 활용해서 사진첩 사진 가져오기 (0) | 2021.06.21 |
[iOS/swift] JsonString을 Object 배열로 변환하기 (0) | 2021.06.21 |
[iOS-Swift] UIView의 원하는 곳에만 round를 주고싶을 때! (0) | 2021.05.28 |
[iOS-Swift] UIImage 색상 코드에서 변경하기 (0) | 2021.05.28 |
Comments