반응형
기존에 StackView에 subView들을 추가할 때 아래와 같이 따로 외부에서 .addArangedSubview()를 이용해 작성했었다.
private lazy var scrollContentsVStack: UIStackView = {
let stackView = UIStackView()
stackView.axis = .vertical
stackView.distribution = .equalSpacing
stackView.alignment = .fill
stackView.spacing = 24
return stackView
}()
[bookInfoView, dedicationView, summaryView, chaptersView].forEach {
scrollContentsVStack.addArrangedSubview($0)
}
하지만 초기화 시 convenience init(arrangedSubviews views: [UIView])를 이용해 바로 subView를 추가할 수 있었다.
https://developer.apple.com/documentation/uikit/uistackview/init(arrangedsubviews:)
init(arrangedSubviews:) | Apple Developer Documentation
Returns a new stack view object that manages the provided views.
developer.apple.com
따라서, 아래와 같이 UIStackView 생성 시 바로 추가하도록 수정을 해봤다.
private lazy var scrollContentsVStack: UIStackView = {
let stackView = UIStackView(arrangedSubviews: [bookInfoView, dedicationView, summaryView, chaptersView])
stackView.axis = .vertical
stackView.distribution = .equalSpacing
stackView.alignment = .fill
stackView.spacing = 24
return stackView
}()
이런 방식이 lazy를 이용하여 최적화할 때 더 도움이 될 것 같다고 한다.
반응형