적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Swift iOS 앱 개발 169

[Swift iOS] UITextView set placeholder

textField에는 있는 placeHolder가 textView에는 없다! 수동으로 추가해주는 법. class UIViewController: UIViewController, UITextViewDelegate { @IBOutlet weak var myTextView: UITextView! override func viewDidLoad() { myTextView.delegate = self myTextView.text = "내용을 입력하세요." myTextView.textColor = UIColor.systemGray3 } //MARK: - TextView Delegate func textViewDidBeginEditing(_ textView: UITextView) { if textView.text ==..

[Swift iOS] detect UITableView scroll to bottom

UITableView에서 데이터 로드 후 마지막까지 스크롤을 내리면 추가로 데이터를 더 로드하도록 하는 법 다음과 같이 tableView 내장 함수 중에서 willDisplay cell 을 사용하여 스크롤 끝을 감지할 수 있다. func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { if indexPath.row + 1 == yourArray.count { print("load more") } } 참고 : CodeRedirect - Detect when UITableView has scrolled to the bottom 음.. 근데 문제가 스크롤 다 내려왔을 때도 ..

[Swift iOS] keyboard top toolbar 추가하기

viewDidLoad() 에 다음을 추가해준다. let toolbar = UIToolbar() let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(done)) let customBtn = UIBarButtonItem(title: "button", style: .plain, target: nil, action: nil) let flexibleSpaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) toolbar.sizeToFit() toolbar.setItems([customBtn, flexi..

[Swift iOS] UIComponents

다음과 같이 URL을 생성해줄 수 있다. var components = URLComponents(string: "https://hongssup.tistory.com") let type = URLQueryItem(name: "type", value: "post") let page = URLQueryItem(name: "page", value: "22") components?.queryItems = [clientID, scope] components?.url //https://hongssup.tistory.com/?type=post&page=22 반대로 URL에서 정보를 가져오고 싶다면 다음과 같이 받아올 수 있다. 참고 : ZeddiOS - URLComponents

[Swift iOS] UICollectionView scroll to top / bottom

다음과 같이 옵저버로 호출을 해줘도 되고 버튼 클릭으로 해줘도 되고 암튼 스크롤 top / bottom 함수를 호출해준다 NotificationCenter.default.addObserver(self, selector: #selector(self.scrollToBottom), name: NSNotification.Name(rawValue: "ScrollToBottom"), object: nil) NotificationCenter.default.addObserver(self, selector: #selector(self.scrollToTop), name: NSNotification.Name(rawValue: "ScrollToTop"), object: nil) 다음과 같이 맨 위로 / 맨 아래로 스크롤하는 ..

[Swift iOS] CLLocationManager 위치정보 GPS 주소 가져오기

CLLocationManager 위치 권한 설정 Info.plist Privacy - Location When In Use Usage Description : 앱 사용중일 때만 GPS 사용 (for use in foreground) Privacy - Location Always and When In Use Usage Description : 위치 정보 항상 사용 (앱 사용 안할 때도) 위도 경도 가져오기 import UIKit class ViewController: UIViewController { var locationManager: CLLocationManager! var currentLocation: String? override func viewDidLoad() { super.viewDidLoad..

[Swift iOS] WKNavigationDelegate 하이브리드 앱에서 webview 탐색 및 관리

WKNavigationDelegate : Methods for accepting or rejecting navigation changes, and for tracking the progress of navigation requests. 웹뷰에서 일어나는 변경 사항들을 감지하고 제어할 수 있는 프로토콜. 특정 링크에서의 작동을 제한하거나 진행 상황을 추적하는 등의 기능을 수행할 수 있다. WebViewController에 WKNavigationDelegate 프로토콜을 추가해주면 다음 메서드들을 사용하여 웹뷰 페이지 탐색 및 이동을 제어할 수 있다. webview.navigationDelegate = self 로 대리자 위임해주는 것을 잊지말 것! 1. decidePolicyFor navigationAct..

[Swift iOS] Convert number into money format with a comma (feat. NumberFormatter 숫자 콤마 표시)

NumberFormatter : 숫자 값과 텍스트 사이를 변환하는 formatter 숫자 / 금액에 자동으로 쉽표를 추가해주는 formatter가 있는 지 몰랐던 5개월 전의 나는 귀엽게도 다음과 같은 코드로 가격에 쉼표를 표시해주었다. 😆 let price = UILabel() var priceArray = Array("50000") if priceArray.count == 4 { priceArray.insert(",", at: 1) } else if priceArray.count == 5 { priceArray.insert(",", at: 2) } price.text = String(priceArray) // "50,000" 숫자가 4개면 두번째 자리에 쉼표를, 5개면 세번째 자리에 쉼표를 추가해준다..

[Swift iOS] webview 로딩 완료 감지 (feat. WKNavigationDelegate)

didFinish navigation 으로 페이지 로딩 완료를 감지할 수 있다. 다음과 같이 실행해줄 경우, 새로운 페이지가 로딩될 때마다 url 로딩 완료 로그를 확인할 수 있다. func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { let url = webView.url?.absoluteString print("로딩완료 : \(url)") } 참고 : LaValse - WKNavigationDelegate, wkwebview 로딩완료감지,

[Swift iOS] 키보드가 textField를 가릴 때 해결법

textField 를 사용할 때, 키보드에 의해 textField가 가려지는 경우가 있다. 이러한 경우 NotificationCenter를 이용해서 키보드의 상태를 받아와, 키보드가 올라가면 잠시 textField 입력 창을 올렸다가 내려갈 때 다시 원래대로 내리면 된다. override func viewDidLoad() { super.viewDidLoad() textField.delegate = self NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.d..

728x90
반응형