반응형

Old_SWIFT(221012)/기본이야기 32

타이머(DispatchSourceTimer), 시간측정 다루기

안녕하세요. KataRN입니다. 오늘은 시간측정에 대해 알아보려합니다. 시간측정하는 방법은 사실 많은데요.. 이 방법이 제일 편하고 좋은것 같아서 글로 남기려고합니다. 참고 : 애플공식문서 https://developer.apple.com/documentation/dispatch/dispatchsourcetimer Apple Developer Documentation developer.apple.com 아래 코드와 주석으로 설명해드리겠습니다. var timer: DispatchSourceTimer? //원하는 쓰레드 지정 timer = DispatchSource.makeTimerSource(flags: [], queue: DispatchQueue.main) //바로시작을 원하니까 dedline은 .now..

UIControl 객체에 addTarget으로 이벤트 다루기

안녕하세요. KataRN입니다. 오늘은 특정 UIControl에 addTarget으로 이벤트를 부여하는 것을 해보도록 하겠습니다. 사실 오늘은 너무너무너무 정리가 잘되어있는 글이 있어서 이론적인 내용보다는 예시를 통한 예로 간단하게 설명해보겠습니다. 참고 글 : https://daheenallwhite.github.io/ios/2019/07/24/Target-Action/ [iOS] Target-Action : UIControl 객체가 이벤트에 응답하는 방식 Dana Daheen Lee #iOS #Swift #CleanCode #Programming daheenallwhite.github.io 아래 2가지를 해보겠습니다. 텍스트필드 데이트피커 1. 텍스트 필드 텍스트 필드의 값을 변경하면 UILabel ..

제스처(addGestureRecognizer, UITapGestureRecognizer) 알아보기

안녕하세요. KataRN입니다. 오늘은 UILabel을 버튼처럼 만들어보려합니다. 단순한 예제를 통해 알아보죠. 1. UILabel을 버튼처럼 누르게 만든다. 2. 누르면 함수를 호출하게 만든다. import UIKit class ViewController: UIViewController { @IBOutlet weak var aBtn: UILabel! @IBOutlet weak var aLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(change)) aBtn.addGestureRecogni..

[AutoLayout]UILabel, Hugging Priority, Compression Resistance Priority, Intrinsic Content Size

안녕하세요. KataRN입니다. 오늘은 Hugging priority, Compression Resistance priority에 대해서 알아보겠습니다. 스토리보드에서 가끔 제 생각에는 문제가 없는데 빨간줄이 생기면서 문제가 있다고 뜨는겁니다. 뭐 다양한 이유가 있겠지만 그중 Hugging priority, Compression Resistance priority에 의해서 해결되는 경우를 다뤄볼까 합니다. 이걸로 해결되는 분들도 많으실거에요. 그렇지만 이번 글의 목적은 공유보다는 제가 헷갈려서 글로 작성해봅니다.ㅎㅎ 예제는 단순합니다. 스토리보드를 열고 ViewController에 UILabel을 두개 평행하게 위치시킵니다. UILabel 각각 위 왼쪽 오른쪽 아래 20의 거리를 줍니다. 저렇게 빨갛..

TableView 알아보기(UITableViewDatasource, UITableViewDelegate)

안녕하세요. KataRN입니다. 오늘은 tableView에 대해 알아보겠습니다. tableView가 참 많은 기능이 있는데 쓰는것만 쓰는것 같아서요. 해당 글은 패스트캠퍼스 강의를 참고하여 만들었습니다.(내돈내산, 광고아님, 추천은함) 우선 뭐가있는지 알아보죠. UITableView에는 2가지 객체가 있습니다. 1. UITableView DataSource 테이블 뷰를 생성하고 수정하는데 필요한 정보를 테이블 뷰 객체에 제공합니다. 2. UITableView Delegate 테이블 뷰의 시각적인 부분을 설정하고, 행의 액션 관리, 엑세서리 뷰 지원 그리고 테이블 뷰의 개별 행 편집을 도와줍니다. 기본적으로 tableView는 아래 2가지 함수가 필수입니다. func tableView(UITableView..

IBInspectable, IBDesignable 다루기

안녕하세요. KataRN입니다. 오늘은 IBinspectable, IBDesignable에 대해 알아보겠습니다. 우선 IBinspectable, IBDesignable에 대해 설명드려야겠군요 만약에 저희가 스토리보드를 통해서 view의 모서리를 둥글게 하고싶다! 코드로는 당연히 가능합니다. 그럼 스토리보드로 가능할까요? 정답은 없지만 가능하다입니다. ... ??? 없는데 가능하다????.. 없으면 있게 만들면 되니까요. ??? 이렇게 스토리보드에 없는 항목을 넣을때 필요한것입니다. 자세한건 예제로 설명드리겠습니다. 아래 오른쪽사진을 보시면 오른쪽 영역을 inspector이라고 합니다. 저희가 알아보려는건 IBInspectable이었죠? 비슷합니다. 저희가 속성을 추가하려는 View(왼쪽사진)의 Custo..

알림창(UIAlertAction, Alert, ActionSheet, addTextField) 다루기

안녕하세요. KataRN입니다. 오늘은 알림창에 대해 알아보겠습니다. 알림창의 경우 활용도가 높아 자주쓰는 기능입니다. 알림창은 UIAlertController로 만들 수 있습니다. preferredStyle에따라 .alert, .actionSheet로 나눠집니다. 아래 애플 공식문서 링크 남기겠습니다. https://developer.apple.com/documentation/uikit/uialertcontroller Apple Developer Documentation developer.apple.com 우선 알림창 코드와 사진을 보여드리겠습니다. @IBAction func touchUpAlertButton(_ sender: UIButton) { let alert = UIAlertController(..

UserDefaults(데이터저장) 다루기

안녕하세요 KataRN입니다. 오늘은 데이터를 저장하는 방법에 대해 이야기해보려합니다. 저희가 앱의 환경설정에서 설정을 하면 앱에서 기억을 해야합니다. 왜냐면 앱을 껏다키면 보통 데이터가 지워지죠? 그래서 앱내에 데이터를 기억시켜야합니다. 그때 Userdefault를 이용하여 데이터를 기억시킵니다. 우선 아래 데이터를 저장하는방법입니다. let userdefault = UserDefaults.standard userdefault.set(1, forKey: "숫자") userdefault.set("A", forKey: "문자") userdefault.set(true, forKey: "진실혹은거짓") let array = ["a", "b", "c"] userdefault.set(array, forKey: "..

화면 간 데이터전달하기(쉬움주의, 따라만해)

안녕하세요. KataRN입니다. (수정_220120) 2개의 글을 하나로 합쳤습니다. 오늘은 화면간의 데이터 전달에 대해서 알아보겠습니다. 화면에서 화면으로 이동할때 데이터를 전달하고 받는 방법입니다. 여러가지 방법들이 있는데 매번 뭘써야되는지 왜써야되는지를 고민해왔는데 일단 뭐가 있는지부터 파악해보도록하죠. 프로퍼티에 직접 접근하는 방식 segue를 이용해서 전달 delegate 패턴을 이용한 방식 closure를 이용한 방식 NotificationCenter와 Observer pattern을 이용한 방식 1. 프로퍼티에 직접 접근 - 프로퍼티와 함수를 이용해서 데이터를 주고 받아보겠습니다. 1-1. A화면에 버튼을 누르면 데이터가 B화면에 들어가도록 B화면의 Data에게 데이터를 넘겨줍니다. 1-2...

화면전환하기, 화면이동하기(쉬움주의, 따라만해)

안녕하세요. KataRN입니다. 오늘은 화면전환 하는 방법에 대해 알아보겠습니다. 크게 4가지 방법이 있습니다. ViewController의 view를 바꾸기 현재 ViewController에서 다른 ViewController를 호출하여 화면전환하기(present) NavigationController를 이용하여 화면전환하기(push) 화면전환용 객체 Segue를 이용하여 화면전환하기(show, present) 1. ViewController의 view를 바꾸는 방법입니다. - 메모리 overflow 위험이 있기 때문에 사용하지 않습니다. - 방법은 있으나 이 글을 읽는 분들께서는 아래 3가지 방법으로도 충분할 것이기 때문에 소개하지 않겠습니다. 2. 현재 ViewController에서 다른 ViewC..

반응형