쑤야의 개발 블로그

고정 헤더 영역

글 제목

메뉴 레이어

쑤야의 개발 블로그

메뉴 리스트

  • 홈
  • 태그
  • 분류 전체보기 (98)
    • Algorithm (52)
    • CS (0)
    • AI (15)
      • PyTorch (4)
      • 논문 (3)
      • Open3D (7)
      • DL (0)
    • iOS (30)
      • RxSwift (4)
      • Combine (4)
      • Swift (1)
    • ETC (1)
      • 기타 (1)

검색 레이어

쑤야의 개발 블로그

검색 영역

컨텐츠 검색

iOS

  • Tag DesignSystem 리팩토링 과정

    2023.03.19 by 쑤야.

  • BehaviorSubject 개념 및 활용

    2023.03.18 by 쑤야.

  • Transforming Operators - Map, FlatMap, FlatMapLatest

    2023.03.17 by 쑤야.

  • Protocol과 상속 관계를 활용해 HeaderView 구성하기

    2023.02.05 by 쑤야.

  • UITextField에 값 할당한 경우 이벤트 감지시키기

    2023.01.08 by 쑤야.

  • UITableView 상단 space 제거

    2023.01.03 by 쑤야.

  • View의 tag 프로퍼티 활용하기

    2023.01.01 by 쑤야.

  • UITextView Placeholder 및 글자 수 카운팅

    2022.12.19 by 쑤야.

Tag DesignSystem 리팩토링 과정

재치 프로젝트에서는 많은 태그 디자인들이 존재한다. 현재 Tag 디자인 시스템은 Tag라는 부모 클래스가 존재하며, 자식 클래스를 색상으로 분리해 구현했다. extension ZatchComponent{ enum TagColor{ case purple case yellow } enum TagConfiguration{ case height20 case height25 case height29 case height31 } } class Tag: PaddingLabel{ var isDisabled = false{ didSet{ isDisabled ? setDisabledState() : setNormalState() } } var isSelected = false{ didSet{ isSelected ? set..

iOS 2023. 3. 19. 00:26

BehaviorSubject 개념 및 활용

BehaviorSubject Represents a value that changes over time. Observers can subscribe to the subject to receive the last (or initial) value and all subsequent notifications. 생성자 init(value: Element) Initializes a new instance of the subject that caches its last value and starts with the specified value. 생성자 관련 설명을 보면 알 수 있듯이 BehaviorSubject는 PublishSubject와 다르게, 초기값을 가진다. 메서드 public func value() th..

iOS/RxSwift 2023. 3. 18. 22:32

Transforming Operators - Map, FlatMap, FlatMapLatest

Map transform the items emitted by an Observable by applying a function to each item Swift의 고차함수인 map과 동일하게 생각할 수 있다. 각 요소들에 대해서 클로저 연산을 수행해 방출하는 것이다. Observable .of(1, 2, 3) .map{ $0 * 2 } //2 4 6 방출 FlatMap transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable FlatMap merges the emissions of resulting Observables, emitting..

iOS/RxSwift 2023. 3. 17. 22:39

Protocol과 상속 관계를 활용해 HeaderView 구성하기

이번 포스팅에서는 HeaderView 관리를 위한 리팩토링을 어떻게 했는지 작성해보도록 하겠다 1. 리팩토링의 이유 Zatch 프로젝트에서는 아래와 같이 굉장히 많은 HeaderView 디자인이 존재한다. navigation controller에 속하는 view controller의 경우 back button 왼쪽에 navigation title이 위치한 경우 가운데에 navigation title이 위치한 경우 오른쪽 기타 버튼 1개인 경우 오른쪽 기타 버튼 2개인 경우 위의 조합에 따라 header view가 구성되게 된다. 처음 프로젝트를 진행했을 때는 ViewController와 View를 분리하지 않았었다. 프로젝트를 진행하다 보니 ViewController가 너무 많은 역할을 수행하고, UI가..

iOS 2023. 2. 5. 12:30

UITextField에 값 할당한 경우 이벤트 감지시키기

1. Problem 학기 중에 못한 RxSwift 공부 및 프로젝트 적용을 드디어 종강하고 첫 시도를 해보았다 하지만 역시 RxSwift 적용하기 쉽지 않다.. 처음부터 난관에 봉착 상황을 먼저 설명하자면 completeButton은 기본적으로 비활성화 상태 시작 날짜와 종료 날짜를 모두 선택할 경우 completeButton은 활성화됨 하지만 현재 내가 작성한 코드에서 UITextField의 text 값이 바뀌고 completeButton이 활성화 조건을 충족해도 활성화가 되지 않는 문제가 발생했다. func transform(input: Input) -> Output{ let requestObservable = Observable.combineLatest(input.startDateTextField,..

iOS 2023. 1. 8. 23:06

UITableView 상단 space 제거

1. Problem 재치 프로젝트에서 다른 View들과 다르게 상세 페이지는 디바이스 상단에 딱 붙어있다 그래서 나는 당연히 View를 ViewController에 붙일 때 아래 코드와 같이 top을 superview에 붙였다 mainView.snp.makeConstraints{ $0.top.leading.trailing.bottom.equalToSuperview() } 그런데… TableView가 아래 사진처럼 위에 딱 붙어있지 않고 저절로 공간을 가져버렸다 (빨간색 배경은 설명할 때 구분을 확실하게 보여주기 위해 설정한 것) spacing 크기가 대충 노치 사이즈정도로 보여서 레이아웃의 offset 값으로 노치 값인 44만큼 주었다. mainView.snp.makeConstraints{ $0.top...

iOS 2023. 1. 3. 22:09

View의 tag 프로퍼티 활용하기

Docs Apple Developer Documentation Apple Developer Documentation developer.apple.com tag의 공식 문서를 살펴보면 이를 활용하는 viewWithTag라는 메서드가 있다. 메서드의 역할을 읽어보면 특정 값을 가지는 view를 반환하는 역할을 하는 듯 싶다 이를 보고 나는 tag에 나만의 규칙을 세워 그 값을 할당해주면 필요한 view를 수월하게 가져올 수 있겠다라는 생각을 하게 되었다. 적용 시킬 UI는 위의 사진과 같다 3가지의 감정 표현 중에서 하나를 필수로 선택해야 하는 것인데, TableView로 구성할까 그냥 View 3개로 구성할까 고민하다가 후자로 선택하게 되었다. 후자로 선택한 이유는 스크롤이 필요가 없어 cell을 재사용 ..

iOS 2023. 1. 1. 00:16

UITextView Placeholder 및 글자 수 카운팅

포미 프로젝트에서 사용되는 TextView UI는 아래 사진과 같이 placeholder와 글자 수 카운팅 기능이 포함되어 있다. 슬프게도 iOS에는 UITextView에 placeholder 기능이 없다.. 직접 구현해야 한다는 뜻이다^^ (이럴 때 그리워지는 안드로이드..) 이번 포스팅에서는 UITextView에 placeholder 기능과 글자 수 카운팅 기능에 대해서 작성해보도록 하겠다. Docs & Reference 먼저 구글링을 통해서 placeholder와 글자수 카운팅 기능에 대한 조사 후, 구현에 최종적으로 사용한 메서드들은 아래와 같다. UITextViewDelegate textViewDidBeginEditing textViewDidEndEditing textView(_ textView..

iOS 2022. 12. 19. 22:10

추가 정보

인기글

최신글

페이징

이전
1 2 3 4
다음
TISTORY
쑤야의 개발 블로그 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바