문제 상황 : Naver Map API를 이용하여 화면 구성중, 지도가 화면에 보일 시 해당 오류가 발생. 그러나 실행 됨.
원인: 네이버 지도를 초기화 할 때, frame을 넣어서 생성한게 아닌, 단순 초기화 한 후, layout을 잡아서 발생.
class RunningMap: UIView {
lazy var nmap: NMFMapView = {
let nmap = NMFMapView()
nmap.translatesAutoresizingMaskIntoConstraints = false
return nmap
}()
override init(frame: CGRect) {
super.init(frame: frame)
addSubview(nmap)
setNmap()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setNmap() {
NSLayoutConstraint.activate([
nmap.topAnchor.constraint(equalTo: topAnchor),
nmap.leadingAnchor.constraint(equalTo: leadingAnchor),
nmap.trailingAnchor.constraint(equalTo: trailingAnchor),
nmap.bottomAnchor.constraint(equalTo: bottomAnchor)
])
}
}
class MeasureRunningViewController: UIViewController {
lazy var mapView: RunningMap = {
let mapView = RunningMap()
mapView.translatesAutoresizingMaskIntoConstraints = false
return mapView
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(mapView)
view.backgroundColor = .systemBackground
NSLayoutConstraint.activate([
mapView.topAnchor.constraint(equalTo: view.topAnchor),
mapView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
mapView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
mapView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
}
}
해결 방안: 생성 할 때 해당 지도가 들어갈 화면에 직접적으로 frame을 삽입하여 초기화
'iOS > 앱 개발' 카테고리의 다른 글
UIButton 이미지 사이즈 조절 (0) | 2023.03.04 |
---|---|
iOS) 네이버 지도 API NMFMapView와 NMFNaverMapView (0) | 2023.02.25 |
Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior 오류 (0) | 2023.02.09 |
UICollectionViewLayout, UICollectionViewFlowLayout (0) | 2023.02.08 |
layoutMargins, UIEdgeInsets (0) | 2023.02.02 |