위 사진처럼 이미지, 텍스트, 뷰로 이루어진 내용이 있다.
서로 정보는 다르지만 레이아웃이 같기 때문에 하나의 뷰를 만들어 재사용이 가능하다.
class ContentsView: UIView {
init(title: String, subTitle: String, img: String) {
super.init(frame: CGRect.zero)
self.titleLabel.text = title
self.subTitleLabel.text = subTitle
self.iconImageView.image = UIImage(named: img)
setupViews()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
위 처럼 뷰를 만들고 init을 사용하여 데이터를 받아와 해당 뷰에 데이터를 적용하도록 설정했다.
private lazy var pictureView = ContentsView(title: "사진폴더",
subTitle: "고객의 소리 파일첨부 등",
img: "ic_access_camera_32")
private lazy var contactsView = ContentsView(title: "연락처",
subTitle: "간편송금 서비스 받는분 연락처 선택",
img: "ic_access_address_32")
private lazy var positionView = ContentsView(title: "위치",
subTitle: "비대면 계좌개설 시 신분증 촬영",
img: "ic_access_map_32")
이렇게 만든 1개의 뷰를 재사용하여 각각의 다른 텍스트, 이미지를 갖는 총 3개의 뷰를 선언했다.