최신글
-
화면 전환
1. 프레젠테이션 방식으로 화면 전환 present(, animated:, completion:) 프레젠테이션 체인(Presentation Chain)에 뷰 컨트롤러의 포인터가 차례로 저장됨 presentedViewController : 자신이 호출한 ViewController presentingViewController : 자신을 호출한 ViewController dismiss(animated:, completion:) ※ 주의 ※ 화면이 사라지게 처리하는 것은 사라질 화면의 뷰 컨트롤러 자신이 아니라 자신을 띄우고 있는 이전 뷰 컨트롤러다. self.dismiss(animated:) X (원래는 안되지만 잘 동작한다. 많은 개발자들이 그냥 사용하고 있다.) self.presentingViewContr..
2019.10.01
-
UI 디자인에서의 황금비율
황금비율이란 우리 눈에 가장 아름답게 보이는 비율로써, 레오나르도 다빈치가 발견한 이론 중 하나이다 르네상스 시대 당시 최고의 물건과 색을 '황금'이라고 한 데서 붙여졌다. 황금비율 계산법 1 : 1.618 "UI 작업 시 왜 황금비율을 도입해야 할까?" UI 디자인에 황금비율을 도입하는 이유 심리적으로 편안함을 가져온다. 전체적인 레이아웃을 리딩하기 쉬워진다 구조적인 느낌을 준다 황금비율 적용 사례 대부분의 신분증 신용카드나 전화카드의 형태는 황금비율 사용한다. 트위터, 애플을 비롯한 많은 로고가 황금비율을 이용해서 디자인됐다 애플을 비롯한 많은 웹사이트 역시 황금비율을 이용해서 디자인됐다 황금비율과 백은 비율을 편하게 계산해주는 사이트 https://voidism.net/metallicratio/
2019.09.28
-
Xcode10 스토리보드 살펴보기
1. 인터페이스 빌더 살펴보기 보조 에디터(Assistant Editor) 및 커넥션 인스팩터 (Connections Inspector) 아이덴티티 인스팩터 (Identity Inspector) 사이즈 인스팩터 (Size Inspector) 속성 인스팩터 (Attributes Inspector) 2. IBOulet, IBAction (인터페이스 빌더 어노테이션) @IBOulet (아울렛 변수) - 화면상의 객체를 소스 코드에서 참조하기 위해 사용하는 어노테이션 @IBAction (액션 메소드) - 객체의 이벤트를 제어할 때 사용하는 어노테이션 3. 인터페이스 빌더 객체와 클래스 연결 보조 에디터(Assistant Editor)를 활용한 연결 - 인터페이스 빌더에서 보조 에디터로 연결 - 새로 작성하면서 ..
2019.09.25
-
BottomNavigationView에 ViewPager 2 적용하기
인스타그램 처럼 아래쪽에 BottomNavigationView을 적용하고 각 메뉴를 선택 했을때 Fragment를 Replace 하면서 보여지게 하려고 합니다. BottomNavigationView에 reuseable fragment를 연동 하려면 ViewPager를 이용해야 합니다. ViewPager 대신 아직 베타 버전 이지만 ViewPager2를 이용해 보도록 합니다. build.gradle에 viewpager2, material dependency 추가 implementation "androidx.viewpager2:viewpager2:1.0.0-beta04" implementation "com.google.android.material:material:1.0.0" BottomNavigationV..
2019.09.23
-
iOS앱의 구조
1. 앱이 실행되는 과정 1. main() 함수 실행 (해당 파일은 이제 확인 불가) #import #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 2. UIApplicationMain() 함수 호출 (@UIApplicataionMain) import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func applicatio..
2019.09.22