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
- uitableview
- ribs
- 리펙터링
- combine
- Observable
- ios
- rxswift
- swiftUI
- 리팩토링
- Protocol
- Xcode
- RxCocoa
- HIG
- map
- 스위프트
- SWIFT
- 리펙토링
- UITextView
- 클린 코드
- collectionview
- uiscrollview
- 애니메이션
- Human interface guide
- swift documentation
- tableView
- Clean Code
- MVVM
- UICollectionView
- clean architecture
- Refactoring
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] UIStackView에서 backgroundColor 적용 방법, drawRect(), draw(_:) (iOS 13이하 버전에 해당) 본문
iOS 응용 (swift)
[iOS - swift] UIStackView에서 backgroundColor 적용 방법, drawRect(), draw(_:) (iOS 13이하 버전에 해당)
jake-kim 2022. 5. 3. 22:51UIStackView의 backgroundColor 속성
- UIStackView를 사용할때 주의할 점
- backgroundColor 프로퍼티에 색상을 입력해도 iOS13 이하 버전에서는 draw(_:)를 호출해주지 않아서, clear색상으로 적용
myStackView.backgroundColor = .orange // iOS 13이하에서는 적용 x
draw(_:) 메소드란?
- draw(_:) 메소드의 파라미터인 rect는 뷰의 경계이며, 내부적으로 불릴때는 보이는 뷰의 전체 직사각형의 경계
- 내부적으로 draw(_:) 불리는 타이밍
- 뷰가 메모리에 올라온 후 (viewDidLoad) 뷰를 그려줄 때 호출
- 드로잉 사이클이 있으므로, 코드에서 draw(_:)를 직접적으로 호출하지 말고, 다음 loop 사이클에 그려달라고 요청하는 setNeedsDisplay()를 사용할 것
UIStackView에서 backgroundColor 적용 방법
- iOS 13 버전 이하인 경우에만 stackView 바로 위에 UIView를 올려서, 그 UIView에 backgroundColor를 적용
private let stackView: UIStackView = {
let stackView = UIStackView()
stackView.axis = .vertical
stackView.translatesAutoresizingMaskIntoConstraints = false
if #available(iOS 14.0, *) {
stackView.backgroundColor = .orange
} else {
let backgroundView = UIView()
backgroundView.backgroundColor = .orange
backgroundView.translatesAutoresizingMaskIntoConstraints = false
stackView.addSubview(backgroundView)
NSLayoutConstraint.activate([
backgroundView.leftAnchor.constraint(equalTo: stackView.leftAnchor),
backgroundView.rightAnchor.constraint(equalTo: stackView.rightAnchor),
backgroundView.bottomAnchor.constraint(equalTo: stackView.bottomAnchor),
backgroundView.topAnchor.constraint(equalTo: stackView.topAnchor),
])
}
return stackView
}()
* 참고
https://developer.apple.com/documentation/uikit/uiview/1622529-drawrect
https://www.hackingwithswift.com/example-code/uikit/how-to-give-a-uistackview-a-background-color
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] 1. UISegmentedControl - 기본 사용 방법 (0) | 2022.05.05 |
---|---|
[iOS - swift] 별점 팝업, 리뷰 요청 팝업 띄우는 방법 StoreKit, SKStoreReviewController (0) | 2022.05.04 |
[iOS - swift] HorizontalScroll 수평 스크롤 (자동 스크롤 구현, UICollectionViewCompositionalLayout 사용) (0) | 2022.05.02 |
[iOS - swift] 2. 오디오 처리 - AVAudioRecoder 개념 (녹음) (0) | 2022.04.30 |
[iOS - swift] 1. 오디오 처리 - AVPlayer, AVAudioPlayer 개념 (0) | 2022.04.29 |
Comments