은 이제 스토리 보드를 사용하지 않고 iOS 앱을 구축 연습 해요,하지만 난이 문제를 해결하려면이, 내가있는 UIView BannerView
라는 정의를 만든 배경 (UIView의)와 제목 (UILabel의)를 추가하고, MainVC
에이 BannerView
을 호출했지만이 응용 프로그램을 실행하면 함수 setupSubviews()
에서 충돌이 발생하고 이유를 알 수 없습니다.사용자 정의 UIView의 스토리 보드
import UIKit
import SnapKit
class BannerView: UIView {
var background: UIView!
var title: UILabel!
override init(frame: CGRect) {
super.init(frame: frame)
setupSubviews()
}
convenience init() {
self.init(frame: CGRect.zero)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupSubviews()
}
func setupSubviews() {
background.backgroundColor = .gray
title.text = "INHEART"
self.addSubview(background)
self.addSubview(title)
}
override func layoutSubviews() {
background.snp.makeConstraints { make in
make.width.equalTo(ScreenWidth)
make.height.equalTo(BannerHeight)
make.left.top.right.equalTo(0)
}
title.snp.makeConstraints { make in
make.width.equalTo(100)
make.center.equalTo(background.snp.center)
}
}
}
class MainVC: UIViewController {
var bannerView:BannerView!
override func viewDidLoad() {
super.viewDidLoad()
bannerView = BannerView(frame: CGRect.zero)
view.addSubview(bannerView)
}
}
'background' 및'title' 개체는 어디에 생성합니까? ('var background : UIView!'는 단지 ** 유효한 객체를 참조하기 위해 설정해야만하는 변수를 선언합니다.) –
@PhillipMills in BannerView –
게시 한 코드에 따르지 않습니다. –