-
[ios - Swift] UIView.Xib 사용하기ios 2020. 11. 24. 23:00
지난 글에서는 UITableViewCell을 Xib 파일로 생성해 사용하는 것을 배웠습니다.
이번 글에서는 UIView를 Xib로 만들어서 사용할 수 있도록 해보겠습니다.
1. 파일 생성
Swift 파일을 생성합니다.
그런데 UITableViewCell을 만들 때와 다르게 Xib File을 생성할 수 없어서 Xib 파일 또한 생성해 줘야 합니다.
View를 선택 후 알아보기 쉽게 Swift 파일과 동일한 이름으로 생성합니다.
2. Xib 구성
View.xib 파일을 열어보면 위 이미지와 같은 것을 확인할 수 있는데 이제 화면을 꾸며보도록 하겠습니다.
View를 선택 후 Attributes inspector -> Size -> Freeform으로 선택 후 원하는 사이즈로 변경 후 인터페이스를 추가해 줍니다.
저는 테이블 뷰에 섹션으로 사용하기 위해서 섹션 타이틀과 버튼을 추가했습니다.
이제 xib 파일을 Swift와 연결하도록 합니다.
Files owner -> Attuributes inspector -> Class에서 이전에 생성한 Swift 파일과 연결합니다.
3. Swift 코드 추가
만들어 둔 Swift 파일을 열어 다음과 같이 코드를 추가합니다.
import UIKit @IBDesignable class SectionView: XibUIView { @IBOutlet weak var mTitle: UILabel! @IBOutlet weak var mActionBtn: UIButton! override init(frame: CGRect) { super.init(frame: frame) } required init?(coder: NSCoder) { super.init(coder: coder) } }
class XibUIView: UIView { override init(frame: CGRect) { super.init(frame: frame) configure() } required init?(coder: NSCoder) { super.init(coder: coder) configure() } private func configure() { let className = String(describing: type(of: self)) guard let view = self.loadViewFromNib(nibName: className) else { return } view.frame = self.bounds self.addSubview(view) } } extension UIView { func loadViewFromNib(nibName: String) -> UIView? { let bundle = Bundle(for: type(of: self)) let nib = UINib(nibName: nibName, bundle: bundle) return nib.instantiate(withOwner: self, options: nil).first as? UIView } }
프로젝트 내에서 아래와 같이 사용하면 됩니다.
let view = SectionView()
'ios' 카테고리의 다른 글
[ios - Swift] 키보드 사용시 뷰 올리기 (0) 2020.11.26 [ios - Swift] UITableView 특정 위치로 이동 (0) 2020.11.26 [ios - Swift] UITableView 무한스크롤 구현하기 (0) 2020.11.22 [ios - Swift] RefreshControl 사용하기 (0) 2020.11.22 [ios - Swift] UITableView Swipe Button 만들기 (0) 2020.11.20