적당한 고통은 희열이다

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

반응형

Swift iOS 앱 개발/실전 Swift 27

[실전 Swift] How to update UI?

실시간으로 변하는 현재 프레임을 받아와서 화면에 표시해주려고 했는데, init()이나 viewDidLoad()는 따로 업데이트가 되지 않으니 extension으로 만들어준 SCNSceneRendererDelegate에서 UILabel()을 업데이트 하고자 하여 텍스트를 바로 설정해주었더니, UILabel.text must be used from main thread only 라는 에러 메세지가 떴다. UI 인스턴스들을 업데이트 하고싶을 경우! DispatchQueue.main.async { 실행할 코드 } 업데이트를 실행하는 메서드 안에 DispatchQueue.main.async {} 를 넣고 그 안에 원하는 UI 업데이트 코드를 작성해주면 화면에 잘 업데이트된다! + 이거 말고도 OperationQu..

[실전] Swift Add toggle button using UIButton() 버튼 만들기

UIButton() 이용하여 토글 버튼 만들기 나는 UIButton() 속성을 가지고 있는 MaterialComponents의 MDCFloatingButton()을 이용해서 버튼을 만들어보았다. 버튼 object 생성하기 1. MaterialComponents.MaterialButtons import 해주기 (그냥 UIButton() 속성 사용 시 생략 가능) 2. MDCFloatingButton() 속성을 가진 버튼 object 만들어주기 화면에 버튼 띄우기 3. setupViews() 함수에서 a) 버튼을 subview에 넣어주고 b) .translatesAutoresizingMaskIntoConstraints = false, .sizeToFit() 을 통해 버튼의 크기 및 위치를 직접 조정할 수 있..

[Swift 실전] Adding Multiple text lines in CollectionViewCell using UIView 컬렉션 뷰 셀 안에 UIView로 속성 추가

UICollectionViewCell 속성이 내장되어있는 새로운 Swift File을 생성한다. MaterialComponents에 내장되어있는 기능들을 추가로 확장하여 사용하기 위해 MDCCardCollectionCell 속성을 이용하는 클라스를 생성한다. import Foundation import UIKit import MaterialComponents.MDCCardCollectionCell class AssetCell: MDCCardCollectionCell { // 변수들 자료형 선언 override init(frame: CGRect) { super.init(frame: frame) // 변수들의 속성 선언 setupSubViews() addConstraints() } required init?..

[실전] Swift Adding ActivityIndicator 로딩화면 띄우기

Activity Indicator 추가 및 사용법 from material-components-github 컬렉션뷰에서 셀 터치 후 Storage로부터 파일을 다운받는동안 AcivityIndicator 돌아가게 만들기. 1. pod file에 pod 'MaterialComponents' 설치 후 import해주기 import MaterialComponents.MaterialActivityIndicator 2. 컬렉션 뷰 컨트롤러 클라스에서 새로운 uiview instance와 activityIndicator 생성해주기 let overlayView = UIView() let activityIndicator = MDCActivityIndicator() 3. setupView() 에서 overlayView 및..

[Swift] Multiple asynchronous tasks 비동기로 여러 파일 다운로드 실행하기

Firebase Storage에서 폴더 리스트를 받아온 컬렉션 뷰에서 해당 셀을 터치하면 해당 폴더 내 파일들의 리스트를 받아와 각 파일의 경로(StorageReference)를 리스트[]로 저장하고 DispatchGroup()을 통해 각 파일들을 비동기 다운로드하여 localURL에 저장하고, 파일들이 다 다운이 되었을 때 UINavigationController를 사용하여 새 화면으로 넘어가는 코드를 구현해보았다. override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { print(files[indexPath.item]) let listRef = ref.child(file..

[실전] Firebase Storage 활용한 Test App 구현

다운받은 MaterialComponent kit를 활용하여 테스트 어플리케이션을 구현해보고자 한다. 나는 MDCDragon 내 CollectionsSimpleSwiftDemo 파일을 활용하여 프로젝트의 코어 시스템을 구현해보겠다. 아래 CollectionView를 활용한 데모 코드를 복사해와 Firebase 항목들을 추가해나가겠다. import UIKit import MaterialComponents.MaterialCollections class CollectionsSimpleSwiftDemo: MDCCollectionViewController { let reusableIdentifierItem = "itemCellIdentifier" let colors = [ "red", "blue", "green",..

[실전] Swift Material components iOS 로 UI 가져오기

https://github.com/material-components/material-components-ios material-components/material-components-ios Modular and customizable Material Design UI components for iOS - material-components/material-components-ios github.com UI를 코드로 직접 다 구현하지 않고, material components kit를 받아와서 사용할 수 있다. Wow! 1. Terminal에서 git clone 하는 법 % git clone https://github.com/material-components/material-components-ios ..

728x90
반응형