[ios] Bounds vs Frame 안녕하세요. 오늘은 여러분들도 한번쯤은 궁금해하셨을 Bounds와 Frame에 대해 저도 항상 의문점이 있었기에 공부해보았고 이에 대해 간단히 정리를 해보았습니다. 간단하게 둘을 비교하자면 다음과 같습니다. Bounds : 뷰의 위치가 뷰 자신의 좌표계에 의해 결정됩니다. Frame : 뷰의 위치가 부모 뷰에 의해 결정됩니다. 쉽게 이해가 되시나요? 아마 단순히 글로 설명드리면 이해가 힘드실 것 같아서 그림을 준비했습니다. Frame Frame은 그림에서와 같이 뷰의 좌표가 부모 뷰를 기준으로 결정됩니다. 다음으로는 Bounds를 살펴보도록 하겠습니다. Bounds Bounds는 본인의 좌표계에 의해 위치가 정해지기 때문에 어느 위치에 있던 (0,0)을 유지합니다...
[Swift] 접근제어 Access Control 안녕하세요. 오늘은 접근제어에 대해 공부를 해보았습니다. 접근제어는 객체지향 패러다임에서 중요한 개념 중 하나인 은닉화를 구현하기 위한 아주 중요한 기능입니다. 그럼 바로 공부한 내용을 정리해보도록 하겠습니다. Module 우선 접근제어를 이해하려면 스위프트에서의 모듈의 개념을 이해하셔야 합니다. 모듈은 코드의 묶음 단위로 프레임워크, 라이브러리, 어플리케이션처럼 배포할 코드들의 묶음을 나타냅니다. 즉 하나의 프레임워크는 하나의 모듈이고 우리가 Xcode로 만드는 프로젝트 역시 하나의 모듈입니다. 그리고 우리는 import를 통해 외부 모듈을 우리의 프로젝트(모듈)에서 사용할 수 있습니다. Access Level 본격적으로 접근수준의 종류에 대해 알아보도..
[ios] 친절한 어플리케이션(2) - Numberpad에 버튼 만들기 안녕하세요. 저번 포스팅에서는 Numberpad 타입의 키보드에서 ,로 숫자를 구분해주는 방법을 알아보았습니다. [ios] 친절한 어플리케이션(1) - 입력된 숫자를 콤마로 구분하기 오늘도 역시 Numberpad 타입의 키보드에 친절함을 더해도록 하겠습니다. Numberpad 타입을 이렇게 다루는 이유는 Numberpad는 일반 키보드와는 다르게 여러 한계점이 존재하기 때문입니다. 일반 키보드 타입에는 상황에 따라 done, Search 등의 버튼들을 쉽게 적용할 수 있지만 Numberpad 타입의 키보드에서는 불가능합니다. 오늘은 이렇게 Numberpad 타입의 키보드에 버튼들을 추가하는 방법을 알아보도록 하겠습니다. 그럼 바로 시..
[ios] 친절한 어플리케이션(1) - TextField에서 콤마(,)로 숫자 단위 구분하기 안녕하세요. 현재 제가 진행하고 있는 가상화폐 관련 프로젝트에는 사용자가 구매했던 당시 코인의 가격과 총 얼마치를 구매했는지를 입력하는 TextField들이 있습니다. 물론 TextField를 올리고 사용자가 입력한 데이터를 처리하는 것은 어렵지 않습니다. 하지만 저의 프로젝트에서는 금액을 입력을 해야하기 때문에 조금만 단위가 커져도 ,를 통한 구분이 없기 때문에 액수를 정확히 입력했는지를 확인하기도 어렵고 보기에도 그렇게 좋지는 않습니다. 200000 : 단위 구분이 없는 값 200,000 : 단위 구분을 한 값 오늘은 이렇게 사소해보이지만 사용자에게는 보다 편리함을 제공하는, 즉 친절한 프로그램을 만드는데 필..
안녕하세요. 기본적으로 지금까지 했던 프로젝트에서는 NavigationBar에 refresh 버튼을 만들어 해당 버튼을 누르면 refresh가 되게 하였는데요. 오늘은 이보다 사용자가 사용하기에 편리한 방법인 리스트를 아래로 잡아 당겨 놓으면 refresh가 되게 하는 법을 알아보도록 하겠습니다. 직접 구현해보니 생각보다 훨씬 쉬운 방법이였습니다. 그럼 바로 시작해보도록 하겠습니다. 1. refreshControl 가장 먼저 ViewController 클래스 안에 UIRefreshControl을 다음과 같이 생성합니다. 그리고 생성한 refreshControl를 사용할 테이블 뷰에 붙입니다. iOS 버전에 따라 refreshControl을 붙여주는 방법은 다릅니다. 10.0 이상은 기본적으로 테이블 뷰에..
[Swift] String 좀 더 알아보기 (2) 안녕하세요. 오늘은 Swift의 String에 대해 더욱 깊게 알아보는 시간을 갖도록 하겠습니다. 이 글을 읽기 전 제가 이전에 쓴 String 좀 더 알아보기 (1) 를 보고 오시면 도움이 될 것입니다. 지난 포스팅에서 제가 Swift에서 String은 각각의 문자에 대해 다른 언어들과 다르게 정수의 인덱스로 접근이 불가능하다고 살짝 언급하였습니다. ex) String[2] 오늘은 이러한 이유에 대해 공부해도록 하겠습니다. Unicode Scalars Unicode : Unicode는 각기 다른 입력 시스템의 문자를 인코딩, 표현, 처리하기 위한 국제적인 표준입니다. Unicode로는 모든 언어의 거의 모든 문자를 표현하고 텍스트 파일이나 웹 페이지와 ..
[ios] 코드로 디바이스 종류 알아내기 안녕하세요. 오늘은 코드로 디바이스 종류를 검사하는 방법을 알아보도록 하겠습니다. 연습 프로젝트를 진행 중인데 테스트 도중 디바이스의 사이즈 때문에 SE 이하의 모델에서는 키보드가 올라오면UITextField와 그 밑에 있는 요소들이 가려지는 문제가 발생했습니다. 이전에 이러한 문제를 다루는 포스팅을 했었습니다. [ios] 키보드가 TextField를 가리는 문제점 위의 포스팅에서 키보드가 올라오면 일정 값만큼 뷰 전체를 올려주는 방법을 사용했습니다. 하지만 저의 프로젝트에선 특정 디바이스에서만 해당 기능을 필요로 하기 때문에 사용자의 디바이스가 어떤 것인지 어플리케이션이 실행 중에 알아야 했습니다. 디바이스 별 크기는 다음의 사진과 같습니다. 위를 활용하여 아래..
[ios] 스토리보드 없이 CRUD - 데이터 영구 저장 안녕하세요. 오랜만에 CRUD 시리즈를 포스팅합니다. 저번 포스팅을 마지막으로 기본적인 CRUD 기능은 모두 완성했습니다. 오늘부터는 부가적인 기능들을 추가해볼텐데요. 오늘은 그 중 첫번째로 생성된 데이터를 영구 저장하도록 하는 기능을 추가해보도록 하겠습니다. 제가 포스팅한 관련 글들을 먼저 읽고 오시는 것을 추천드립니다. [ios] UserDefaults를 이용한 데이터 저장 [ios] NSCoding과 NSKeyed(Un)Archiver를 이용한 데이터 저장 [ios] Codable 을 이용한 데이터 저장 그럼 바로 시작해보도록 하겠습니다. Codable Protocol 먼저 객체를 저장할 것이기 때문에 Friend 클래스가 Codable 프로..
- Total
- Today
- Yesterday
- Swift
- Xcode
- IOS
- UIResponder
- 테이블뷰
- 프로토콜
- 클로저
- 알고리즘
- 부스트코스
- 백준
- oauth2.0
- auto layout
- TableView
- Protocol
- segue
- 스위프트
- notificationcenter
- boostcourse
- 아이폰
- UIControl
- iPhone
- Algorithm
- CRUD
- nodejs
- edwith
- Operating System
- storyboard
- 운영체제
- Codable
- 오토레이아웃
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |