frame vs bounds (4) [ 사용 용도 ]
·
iOS/UIKit
이번 학습은 frame과 bounds의 마지막시간인 도대체 언제 쓰면되는지 를 학습해보자. frame 앞의 학습 내용으로 정리하면 frame의 origin(위치)는 superview 좌표계를 기준으로 한 view의 원점이고 size(크기)는 view 영역을 모두 감싸는 사각형의 크기이다. 그렇다면 이런 성질들은 어디에 쓰일까 ?? View의 위치와 크기를 설정할 때 사용한다. 단순히 View를 생성하는데 사용된다.  let myView: UIView = .init(frame: ...)  bounds앞의 학습 내용으로 정리하면 bounds의 origin(위치)는 자신의 좌표계를 나타내며size(크기)는 View 영역 자체의 size이다. 오직 자신에게만 집중할 수 있어 사용되는 곳이 frame보다는 다양한..
frame vs bounds (3) [origin, viewport ]
·
iOS/UIKit
이번에는 이전 포스팅에 배웠던 frame.origin과 bounds.origin을 실질적으로 옮겨보며 차이점을 조금 더  명확히 해보는 시간을 가져보자. 나의 똥손으로 시각자료를 만들려고 했지만.. 너무 좋은 자료가 있어서 이번 포스팅부터는 iOS 쪽 파워블로거 개발자 소들이님의 시각 자료를 이용해서 정리하는 것을 양해바란다. 🙏 1. frame origin을 변경할 경우 secondView의 frame.origin 값을 (20, 20) -> (50, 50)으로 변경해보자.  여기서 secondView는 입력한 대로 잘 이동 된 것을 볼 수 있다.이 때 특이한 점은 thirdView 역시 이동한 것이다. 왜 이런 결과가 나올까? 이유는 이전 포스팅에서 배운 frame.orgin의 특성 때문이다.fram..
frame vs bounds (2) [ 정의, 기준점, 크기 계산 방식]
·
iOS/UIKit
extension UIView { open var frame: CGRect open var bounds: CGRect...} frame과 bounds는 이전 시간에 학습했던 CGRect 타입, 즉 좌표와 크기를 모두 갖고잇는 정보이다. 타입이 같다는건 공통점이 있다는 것이고, 저장하는 변수의 이름이 다르다는 것은 차이점이 있다는 느낌이 온다. 이번 시간에는 가장 대표적인 공통점과 차이점을 한번 알아보자. frame정의The Frame rectangle, which describes the view's location and size in its superview's coordinate system 프레임은 super view 좌표계 기준으로 현재 View의 위치와 크기를 나타내는 것 여기서 s..
frame vs bounds (1) [ CGPoint, CGSize, CGRect ]
·
iOS/UIKit
이번 학습부터는 많이 헷갈리는 주제인 Frame과 bounds관련에서 시작해보자. 먼저 Frame과 bounds를 들어가기 전에 선행해서 학습하면 좋을 개념들을 학습해보자.  1. CGPoint public struct CGPoint { public init() public init(x: Double, y: Double) public var x: Double public var y: Double}  View의 위치를 나타날 때 사용하는 좌표 값을 타나내는 정보이다.x와 y 값은 Double로 되어있고 기준은 왼쪽 위가 된다.      2. CGSizepublic struct CGSize { public init() public init(width: Double, heigh..
생명주기 (3) [ View 생명주기 ]
·
iOS/UIKit
오늘은 iOS 생명주기의 마지막 단계인 View의 생명주기에 대해 알아보자. 전체적인 생명주기는 다음 그림과 같다. init1) init((coder:))스토리보드나 xib파일은 활용하여 화면을 만들 때 컴파일러가 인식할 수 있게 코드로 변환해주는 과정에서 사용한다.코드 base로 작성했을 때는 required init 형태로 선언만 해줘야한다. 어차피 호출되지 않는다. 2) awakeFromNib()인터페이스 빌더 또는 nib 파일에서 로드된 후 생성되는 메소드이다.Nib/Xib 파일이 언아카이브되고 나서 init(coder: NSCoder)로 모든 객체가 초기화가 완료되었을 때 호출된다.마찬가지로 코드 base로 작성되었을 때는 호출되지 않는다.  3) init((frame: ))View의 인스턴스를..
UIKit 코드 베이스 셋팅
·
iOS/UIKit
이번에는 UIKit으로 코드 베이스 개발 시 불필요한 스토리보드를 제거하는 방법을 학습해보자. Storyboard 제거 코드베이스로 구현을 할 예정이기 때문에 불필요한 스토리보드들을 삭제한다. Main과 LaunchScreen 스토리보드를 제거 한다. Main 스토리보드만 제거한다.LaunchScreen은 앱 시작시점에 스크린 크기 잡는 역할을 한다.만약 LaunchScreen이 없다면 스크린 크기를 아는 시점이 뒤로 밀린다. Info.plist첫번 째는 info.plist에 있는 Scene Configuration에 있는 Storyboard Name을 제거한다. Target타겟의 buildSettingd에서 UIKit Main Storyboard File Base Name 항목을 제거 SceneDel..