iOS에서 탭바는 하단에 고정되어 있다. 상단 부분에 탭바를 만들고 싶다면, 직접 구현해야 한다. 라이브러리를 써도 되지만, 직접 구현하는 편이 성능상에도 좋을것 같고, 예상치 못한 버그를 수정하는데도 좋을것 같아서 직접 구현해보았다. UITabBarController의 공식문서에 나와있는 탭바의 view 계층 및 구현을 참고하여 구현했다. 상단 메뉴바 구현 상단 메뉴바는 화면을 전환하는 역할을 담당한다. 상단 탭바의 경우 버튼 스택뷰를 이용하거나, 콜렉션 뷰를 이용하여 탭바 안에 들어가는 ViewController의 개수에 따라 일정한 크기를 유지하도록 조절 할 수 있다. 나는 콜렉션 뷰를 활용했다. 메뉴바는 UIView에 콜렉션뷰를 넣고, 콜렉션 뷰의 하단에, 현재 위치를 표시해주는 하단바를 콜렉션 ..
let circlePath = UIBezierPath(arcCenter: completeButton.center, radius: completeButton.frame.width/2, startAngle: 0, endAngle: .pi * 2, clockwise: true) let shape = CAShapeLayer() shape.path = circlePath.cgPath shape.fillColor = UIColor.red.cgColor completeButton.layer.addSublayer(shape) UIBezierPath로 원을 completeButton과 같은 크기와 위치에 그리려고 했는데, center가 일치하지 않는 문제가 발생. 원인 UIView의 center는 슈퍼뷰를 기준으로 해당..
이거때문에 3시간은 날린듯... UIButton에서 이미지를 조절하는 방법은 과거에는 contentInset같이 Inset을 조절하여 이미지 사이즈를 조절하는 방식이 있었지만, 지금은 업데이트 되면서 빠지게 되었다. 그래서 다른 방식으로 이미지를 조절해야 한다. 그 방법은 이미지 사이즈 자체를 조절하는 것. UIButton는 이미지의 크기대로 버튼 내부에 그릴 뿐. 따라서 image를 내가 원하는 사이즈로 resizing하면 된다. 이미지 리사이징 코드 import UIKit extension UIImage { func resizeImageTo(size: CGSize) -> UIImage? { UIGraphicsBeginImageContextWithOptions(size, false, 0.0) self...
네이버 지도를 화면에 추가하는 방법은 크게 2가지 나뉨. 1. NMFMapView를 이용 2. NMFNaverMapView를 이용 NMFMapView와 NMFNaverMapView의 차이 및 기능 사용 공식 문서에 나와 있듯이 NMFMapView는 지도만 제공하는 객체이고, NMFNaverMapView는 지도와 지도와 관련된 UI 및 기능를 제공한다. 즉 NMFNaverMapView가 NMFMapView를 가지고 있다는 것. 따라어 NMFNaverMapView에서 카메라 이동, 줌 레벨 같은 지도 자체를 다루는 기능을 사용하려면, NMFNaverMapView에 있는 NMFMapView에 접근하여 사용해야 한다. lazy var mapView: NMFNaverMapView = { let mapView = ..
구글로그인에서 사용자에게 권환을 허용받으려고 Alert를 보여주려고 할 때 나온 오류 Alert가 보여지자 마자 바로 사라진다. 원인: viewDidLoad가 호출될 때 Alert가 보여지도록 코드를 짜놓았다. 즉 화면에 아직 View가 추가 되지 않은 상태에서 Alert를 보여주려 하니 생긴 오류. 해결책: 화면에 View가 추가되면 호출되는 메소드인 viewDidAppear에서 해당 코드가 실행 되도록 한다.