본문 바로가기

iOS

(56)
[iOS] 간단한 메모리 구조 - remind 프로그램이 RAM에 올라가서 프로세스가 됩니다.! 그래서 갑자기 메모리 영역을 알아보겠습니다. ㅎ 메모리는 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역이 있습니다. 코드 영역 작성한 소스코드가 기계어로 저장되며 read only이다. 데이터 영역 전역변수 static 변수가 저장된다. 프로그램 시작시에 메모리가 할당되고 프로그램 종료시 메모리가 해제된다. 실행도중 값 변경이 가능 read write 힙 영역 c언어에서 malloc을 써주듯이 동적 할당이 가능한 메모리 영역입니다. 할당된 데이터를 사용후 메모리 해제를 해주지 않으면 memory leak이 발생합니다. 런타임 하고 있을 때에도 데이터를 크기에 제한 없이 자유롭게 사용가능합니다. iOS에서는 클래스나 클로저같은 참조 타입의 값에서 사..
[iOS] Xcode Preview기능 Storyboard의 Preview 최근 iOS를 공부하던 중 Xcode의 preview기능을 발견했습니다. preview기능은 여러 기종의 View를 화면 측면에 보여줘서 기종에 맞는 Autolayout을 확인하기 쉽습니다. (아니 왜 이걸 아직까지 모르고 있었지.. 아니 알고 있었는데 까먹은건가 ..) Preview의 위치 1. Preview는 Storyboard에서 오른쪽 위를 보면 저 가로로 줄쳐져있는 버튼을 누릅니다. 2. Preview를 누릅니다.. 끝. + 단축기는 스토리보드에서 옵션 + 커맨드 + 엔터 "마주친42" 앱의 검진 자 이제 "마주친42"앱에서 부족한 오토레이아웃 설정을 찾아 볼까요.. 자! 아무것도 없는 Preview화면에서 좌측 하단의 +를 눌러주게되면 여러 기종들을 선택할 ..
[iOS] UIAlertController 알림이랄까. 알람이랄까. UIAlertController 사용자에게 알림 메시지를 보여주는 객체입니다. 위의 그림과 같이 알림창을 사용자에게 보여줄 수 있어요!! UIAlertController는 UIViewController를 상속 하고 있습니다. addAction으로 액션을 추가할 수 있고. present(animated:completion)으로 나타낼 수 있습니다. 위에 만든 알람의 코드입니다. 버튼을 눌렸을 때 실행되도록 했습니다. 각각 코드에 대해 알아볼까요! 1. 먼저 UIAlertContriller클래스의 인스턴스를 초기화 합니다. title - 알림의 제목 message - 알림을 사용자에게 보여준 이유 preferredStyle - actionSheet, alert 두개의 스타일이 있습니다. 2. UIAlertA..
[iOS] UITextField Placeholder 색바꾸기! UITextField Placeholder 색 바꿔지지 않을까 생각했는데 네. 왠만한건 다 됩니다. 코드로 하는건 Placeholder를 접근해서 NSAttributedString 접근해서 바꿔주면 될 것 같습니다.. 추후에 총총.. Storyboard에서 바꿔주기! 텍스트 필드를 눌려주고 identity inspector를 누릅니다.! 여기서 User Defined Runtime Attributes에 + 하여 KeyPath -> placeholderLabel.textColor (다른 글에 _placeholoderLabel.textColor라고 되있었는데 _(언더바) 없으니까 됬습니다. 저는 20210307에 Xcode최신 버전입니다. 주의하세요~) Type -> Color Value -> 원하는색~ 저..
[iOS] Indicator 간단하게 써보기 ㅎ 버퍼링 돌아가는 애니메이션의 이름은 Indicator입니다. UIActivityIndicaotrView는 UIView를 상속하는 클래스입니다. - indicator 애니메이션을 startAnimating() 함수와 stopAnimating()함수로 control할 수 있습니다. - hideWhenStopped 프로퍼티를 true로 하면 Indicator 애니메이션이 멈추면 뷰는 자동으로 hide됩니다. - indicator 색 변경도 가능합니다. ! 스토리보드에 없다고 생각했는데 스토리보드 라이브러리에도 있네요 .. 생각보다 간단한 구조입니다.! Style 종류들! 코드로 구현 해보기 lazy로 구현했습니다. lazy로 구현하면 activityIndicator.center 에서 self를 쓸 수 있습니다..
[iOS] Autolayout 코드로만 평소에 스토리 보드로만 UI를 구성하다가 코드로만 짜보려고 하는데 여러 벽들에 부딪혔습니다.. 일다 코드로만 UI를 구현할 때의 큰 틀은 1. 객체를 만든다. 2. 객체를 서브뷰에 넣는다. 3. 객체의 위치를 설정한다. 입니다. 일단 제가 공부용으로 버튼을 만든 코드를 보자면! 먼저 UIButton를 반환 값으로 하는 함수를 만들고 초기 값들을 설정해 줍니다. 그리고 만든 버튼을 서브뷰에 추가시킵니다. 그리고 저희는 오토레이아웃을 쓸 것이기 때문에 버튼의 translatesAutoresizingMaskIntoConstraints 를 false로 설정 해 줍니다. 이제 각 버튼의 widthAnchor, heightAnchor, leftAnchor, rightAnchor를 설정해주고 isActive = tr..
[iOS] GCD란 Task(일)을 하는 스레드(노동자) 메인스레드가 하는 대표적인 작업은 UI를 그리는 일입니다. iOS에서는 작업을 큐에 보내기만 하면 알아서 OS가 서브 스레드로 분산 처리 해줌. GCD Grand Cetral Dispatch 큐에 넣은 작업들을 스레드에 분배 해주는게 GCD! 스레드를 자동으로 생성하고 실행하고 작업이 종료되면 스레드가 종료됨. DispatchQueue 가 Queue로 보낸다는 뜻 globa: DispatchQueue의 종류 async 비동기 Operation GCD위에서 동작하지만 GCD보다 기능들이 추가되있는 형태 - 동시에 실행할 수 있는 동자의 최대 수 지정 - 동작 일시 중지 및 취소 큐의 특성 Serial(직렬) 한개의 스레드에서 처리 Concurrent(동시) 여러 스레드..
[iOS] SceneDelegate Xcode 11부터 SceneDelegate 가 기본 템플릿에 추가 되었습니다. scene가 앱에 추가될 때 호출됩니다. scene의 연결이 해제될 때 호출됩니다. app switcher에서 선택되는 등 scene과 상호작용이 시작 될 때 호출됩니다. (app switcher는 iPhoneX에서 화면 하단을 위쪽으로 스와이프했을 때 실행중인 앱들이 정렬되어있는 것. 사용자가 scene과의 상호작용을 중지할 때 호출. (화면전환) scene이 foreground에 진입할 때 호출 scene이 백그라운드로 진입할 때 호출 sceneDelegate 안쓰기! 1. Info.plist에서 Application Scene Manifest 삭제. 2. SceneDelegate.swift 삭제 3. Appdelegat..