개발/Swift
-
[HIG] Button 읽기개발/Swift 2023. 9. 25. 23:51
버튼은 액션을 일으킨다 버튼은 세 가지 속성(스타일 ,콘텐츠 ,역할)을 결합하여 기능을 명확하게 전달합니다: In addition to all-purpose buttons, many common button styles — like Info, Close, and Contact Add — perform familiar tasks throughout the system. There are also many button-like components that have distinct appearances and behaviors for specific use cases, like toggles, pop-up buttons, and segmented controls. 닫기 , 연락처추가 ,정보 같은 공통적인 버튼..
-
Swift 데이터 감싸져 있는 안에 있는 값 꺼내서 Decode하기개발/Swift 2023. 7. 22. 16:07
{ "identifier": "dsdfdsf", "name": "james", "product: { "expiration_poloicy": { "expire" : 90 } } } 위와 같은 데이터를 서버로부터 받을때 원하는 데이터인 expire는 두번 감싸져 있다. 해당 데이터를 decoding을 하기위해 Entity를 총 세개나 만들어야 원하는 데이터값을 받을수 있을것이다. struct People: Decodable { var identifier: String var name: String var product: Product } struct Product: Decodable { var expirationPlicy: ExpirationPlicy //public init(from decoder: Dec..
-
UISearchbar, UISearchController 기초 사용법개발/Swift 2023. 7. 2. 14:45
WWDC21에 서치바라는것을 발견했다. 그동안 textfield를 가지고 서치바를 구현했는데 이런것을 지원하고 있는지도 몰랐다. 타겟 버전을 높게 하지 않아도 서치바를 사용할수있다. iOS8 이상 그럼 텍스트필드로 만드는것 보다 뭐가 더 유리할지 직접 사용해보자 UISearchController라는게 있다. let searchController = UISearchController() navigationItem.searchController = searchController 이렇게만해도 사용가능하다 그러면 상단에 서치바가 위치한다. 따로 addview , constraint하지 않아도 됨 class ViewController: UIViewController, UISearchResultsUpdating {..
-
Rxswift combineLatest 에러 The compiler is unable to type-check this expression in reasonable time개발/Swift 2023. 7. 1. 13:47
The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions Rx - combine latest 에 9개 이상의 observable을 넣었더니 에러가 발생 CombineLatest를 쓸떄 8개까지만 쓸수가 있다 이를 해결하기위해 여러 더많은 Observable을 쓰려면 combine 을 하고 그거를 가지고 combine 해줘야한다. let searchCombinedObservable = Observable.combineLatest(searchKeyword.asObservable(), eFriendList.asObservable(..
-
커스텀 UISlider 구현하기 (세로 슬라이드, 이벤트)개발/Swift 2023. 6. 24. 17:13
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Swift Modern Collection View & MVVM 패턴 가이드 | 덤벨로퍼 - 인프런덤벨로퍼 | MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이www.inflearn.com UI 커스텀private class CustomSlider: UISlider { override init(frame: CGRect) { super.init(frame: .zero) minimum..
-
Collection View가 들어있는 동적 높이의 Table view Cell 구현하기개발/Swift 2023. 6. 18. 17:48
Table view cell 안에 Collection view를 넣어 Grid나 Horizontal 형식의 리스트를 구현해야 할 때가 있다. 기본적으로 Collection view Compositional layout 을 써도 되지만 회사에서 신기술을 쓰기 어려울 상황도 있기에... 이런 상황에 table view cell에 리스트 뿐만 아니라 하당 셀을 접고 펴는등의 액션을 구현해야 할때 결국 상황에 따라 높이가 변하는 Dynamic Height 는 피할수 없다. Cell 을 그릴때 제약조건을 변경해서 높이를 지정해주기 접고 펴는 상태 값, 리스트에 들어가야할 데이터들 등등은 cellForRowAt이나 Rx에서 데이터 바인딩할때 (VC에서 cell을 리턴하는 시점) Cell에 특정 함수를 통해 넣어주고..
-
Tableview와 스크롤을 다루는 방법개발/Swift 2023. 5. 31. 18:17
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Swift Modern Collection View & MVVM 패턴 가이드 | 덤벨로퍼 - 인프런덤벨로퍼 | MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이www.inflearn.com Tableview의 길이가 길어져서 디바이스의 높이보다 길어지는순간스크롤을 사용할수 있고 그덕에 긴 컨텐츠를 한 페이지에 보여줄수 있다.그래서 table view의 사용목적 자체가 스크롤과 연관이 깊다.이로 인해 스크롤과 테이블뷰 간의 관계를 잘..
-
Swift Bottom Sheet 바텀시트 구현하는 방법 + 동적 높이 할당개발/Swift 2023. 5. 24. 17:02
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com 보통 navigation 의 present 함수를 통해 버텀 시트를 구현 하면 좋지만 해당하는 높이가 아닌 낮은 높이의 바텀시트를 구현 하기 위해서는 결국 Custom 하게 만들어야 한다. 그러려면 결국 ViewController 안에 배경을 흐릿하게 하고 안에 Content View 를 넣어주어 해당 View를 Botto..