티스토리 뷰
Cocoa Touch Framework
-> iPhone, iPad 등의 기기에서 구동되는 애플리케이션을 개발하는 환경
-> UIKit, Foundation 등을 전부 포함하는 최상위 레벨의 프레임워크
Cocoa Framework도 있는데 이는 맥OS를 위한 프레임워크
-> AppKit을 포함하고 있음.
이전에는 위처럼 플랫폼별로 프레임워크가 나눠져있었지만, SwiftUI를 이용한다면 모든 애플 플랫폼에서 사용이 가능함.
하지만 아직까지 완벽하게 안정적이지않아 시간이 조금 더 걸릴 것 같음.
Cocoa Touch Framework에서 가장 많이 쓰는 것이 UIKit과 Foundataion
Foundataion Framework
-> Int, String 같은 기본적인 데이터 형식, 각종 구조체나 타이머 및 앱의 기본 객체와 기반 기술을 제공하는 역할을 함
-> 파일 및 데이터 관리, 네트워킹 시스템이 포함되어있음.
UIKit
-> 이름에서 알 수 있듯이 UI(User Interface)담당.
다양한 유저 인터페이스 도구들을 이용해 iOS앱을 구현할 수 있게 해줌.
-> UIView, UIViewController, UIFont, UIColor등 전부 UIKit에 포함됨.
-> 프로젝트를 생성할 때, 또는 CocoaTouch 파일을 생성할 때 기본적으로 import된 것을 볼 수 있음.
UIKit만 import되어있는 상태에서도 Foundation프레임워크 내의 것들을 사용할 수 있는 것을 알 수 있는데,
이는 command를 눌러 definition을 확인해보면 아래처럼 Foundation이 내부에 이미 import되어 있는 것을 알 수 있음.
UIViewController
-> 앱의 뷰 계층을 관리하는 객체
-> Scene의 구성 요소도 관리하면서, Scene과 데이터 사이의 상호 작용도 관리함.
-> 보통 하나의 화면을 하나의 뷰컨트롤러가 관리함
UITableViewController와 UICollectionViewController같이 이름에 ViewController가 있는 것들은 당연히 상속받는다고 생각하겠지만, UITabBarController나 UINavigationController같은 것들도 포함되는지 확인해보았음.
코코아터치로 파일을 만들고 definition을 확인해보았더니 둘 다 아래와 같이 UIViewController가 있는 것을 확인할 수 있었음.
공식문서에 나온 뷰컨트롤러의 역할
- 일반적으로 기본 데이터의 변경에 대한 응답으로 뷰의 컨텐츠들을 업데이트.
- 뷰를 이용해 사용자 상호 작용에 응답.
- 뷰의 크기를 조정하고, 전체 인터페이스의 레이아웃을 관리함.
- 다른 객체들과 coordinating(조정?)
UIView
-> 화면의 네모난 영역의 컨텐츠를 관리하는 객체 (공식문서)
-> 뷰는 UI의 기본 구성 요소
-> 뷰컨트롤러 위에 뷰 객체가 쌓이는 형태로 Scene이 구성됨.
아웃라인뷰에서 순서를 바꾸게되면 쌓이는 순서도 바뀌어 객체가 가려지거나 나타나질 수 있음.
-> 목적에 따라 다양한 객체 존재 (UILabel, UITextField, UITextView, UIImageView 등)
-> 다양한 뷰 객체들은 모두 UIView를 상속받기 때문에 cornerRadius, borderColor같은 UIView의 속성에 접근 가능.
예를 들어, 뷰를 동그랗게 하는 방법으로 label도 테두리를 동그랗게 만들 수 있음.
@IBOutlet
-> 스토리보드에 추가한 객체 속성에 접근하기 위해 사용. 변수를 지정하는 것과 비슷한 원리
-> 앞의 IB는 인터페이스 빌더를 나타내는 것으로, 인터페이스 빌더와 관련되어 있다는 것을 알 수 있음.
-> 주로 UI 제어를 하기 위해 사용 (색상, 크기 등을 조정)
-> weak과 strong을 선택하여 선언할 수 있는데, weak으로 선언된 변수는 다른 곳에서 참조하고 있더라고 메모리에서 제거될 수 있고 strong은 제거되지 않음.
@IBAction
-> 사용자의 제스쳐를 통해 발생한 이벤트로 실행될 기능을 정의할 때 사용.
(예를 들어, 버튼을 눌렀을 때, Label의 텍스트를 바꿈)
______________________________________________________________________________________________________
앱 아이콘
appicon.co에 들어가서 1024*1024 이미지를 넣으면 앱 아이콘에 필요한 사이즈별로 이미지파일을 받을 수 있음.
하나하나 넣어도되지만 폴더 자체를 asset에 넣어도됨. 다만 이때는 AppIcon-1과 같이 이름이 다를 수도 있기에 주의해야함.
아이폰 앱을 만들더라도 아이패드에서 다운받을 수 있으므로 아이패드 전용 앱 아이콘도 반드시 필요
SF Symbols
-> 폰트를 조절할 때, 사이즈와 weight를 간편하게 조절할 수 있음. 이러한 San Francisco system font의 특성을 가진 이미지를
SF Symbols.
-> 임의로 Custom한 이미지를 넣었을 경우에 SF Symbols처럼 조절이 되지 않는 이유임.
attribute inspector에서도 적용 안 될 수도 있음
-> UISwitch의 경우, title은 맥에서만 적용됨.
-> UISlider의 경우에서도 behavior를 바꿔도 아무 변화가 없는 것을 보니 아이폰이 아닌 다른 플랫폼에서 적용되는 것 같음.
-> 마우스를 올려놓으면 보이는 tooltip도 맥에서만 적용
옵션을 누른 채로 Add editor on right 버튼을 누르면 왼쪽 오른쪽이 아니라 위 아래로 나눠짐.
backgroundColor를 바꿔주는 경우엔 아래와 같이 작성하거나 UIColor를 생략하고 .red라고 작성해도됨
하지만 borderColor의 경우엔 UIColor를 생략해서도 안되고 마지막에 cgColor까지 붙여줘야함
-> backgroundColor는 타입이 UIColor이지만 borderColor는 CGColor이기 때문.
즉, UIColor를 가져와서 cgColor를 통해 타입을 맞춰주는 것임.
______________________________________________________________________________________________________
UISlider의 value와 UIButton을 이용해 이미지뷰의 테두리 조절하기
borderWidth의 타입이 CGFloat이고, slider의 value는 float이므로 CGFloat()를 이용해 타입을 바꿔줌.
UISegmentControl
segmentControl을 이용해서 이미지를 변경해보았음.
selectedSegmentIndex를 통해 현재 선택된 segment에 접근할 수 있었음.
'TIL' 카테고리의 다른 글
[TIL] 2022 / 07 / 09 (0) | 2022.07.09 |
---|---|
[TIL] 2022 /07 / 08 (0) | 2022.07.08 |
[TIL] 2022 / 07 / 07 (0) | 2022.07.07 |
[TIL] 2022 / 07 / 06 (0) | 2022.07.07 |
[TIL] 2022 / 07 /04 (0) | 2022.07.05 |
- Total
- Today
- Yesterday