221110 - TIL

bromp 2022년 11월 11일 AM 04:16 18 0
bromp Profile Image Level 7

  • RxSwift 사용해서 UITextView placeholder 구현
contentTextView.rx.didBeginEditing
      .subscribe(onNext: { [weak self] in
        guard let self = self else { return }
      
        if self.contentTextView.textColor == .placeholderText {
          self.contentTextView.text = nil
          self.contentTextView.textColor = .label
        }
      })
      .disposed(by: self.disposeBag)
    
    contentTextView.rx.didEndEditing
      .subscribe(onNext: { [weak self] in
        guard let self = self else { return }
        
        if self.contentTextView.text == nil || self.contentTextView.text == "" {
          self.contentTextView.text = "내용을 입력해주세요"
          self.contentTextView.textColor = .placeholderText
        }
      })
      .disposed(by: self.disposeBag)

textField는 처음 터치했을때 placeholder가 남아있다가 한 글자 입력됐을 때 사라진다. 위에 방법으로 구현하면 textField의 placeholder 처럼 구현되지 않아서 아쉬웠다. 다음에 다시 한번 도전해야겠다.


  • RxGesture 사용해서 reactorKit 사용시 view tap gesture을 action으로 전달
numberSelectView.rx.tapGesture()
  .when(.recognized)
  .asObservable()
  .map { _ in Reactor.Action.selectNumber }
  .bind(to: reactor.action)
  .disposed(by: self.disposeBag)

참고

댓글