-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mod: Alert UI Change (#84) #95
base: main
Are you sure you want to change the base?
Conversation
timerActiveTrigger | ||
.debug("\(indexPath) active") | ||
.drive(cell.activateCardSubject) | ||
.disposed(by: cell.disposeBag) | ||
|
||
Driver.just(item) | ||
.drive(cell.rx.user) | ||
.disposed(by: cell.disposeBag) | ||
|
||
self?.viewModel.pulse(\.$timeState) | ||
.asDriverOnErrorJustEmpty() | ||
.withLatestFrom(timerActiveTrigger) { ($0, $1) } | ||
.filter { _, isActive in isActive } | ||
.map { timeState, _ in timeState } | ||
.drive(cell.rx.timeState) | ||
.disposed(by: cell.disposeBag) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
활성화 해야할 id와 tiem의 id를 비교하여 Bool값 만들고 cell에 바인딩하였습니다.
시간을 cell에 바인딩해야하는데 state 필터링을 어디에서 하는게 좋을까요?
A. 지금처럼 VC에서 Cell에 바인딩하는 시점
B. Cell 내부에서 state를 가지고 필터링
animated: true | ||
) | ||
TFLogger.ui.debug("scroll to Item at: \(indexPath)") | ||
case let .scrollAfterDelete(user): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ViewModel(Reactor)로부터 삭제 명령이 오면
- 먼저 Cell transfrom animation을 수행하고,
- cell animation 종료 completion에서 다시 signal 보냄
- vm state에서 모델 제거
self.likeImageView.isHidden = isHidden | ||
} | ||
|
||
private func addGradientLayer() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gradient 한 번 생성 후 캡처해놨다가 재사용
// MARK: pageControl | ||
func createLayout() -> UICollectionViewLayout { | ||
let sectionLayout: NSCollectionLayoutSection = .horizontalListSection() | ||
sectionLayout.visibleItemsInvalidationHandler = { [weak self] (items, offset, environment) in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Minny27
compositional Layout에서
pageControl 값 변경하려면, sectionLayout의 변경 감지 closure에서 값 계산하여 control에 연결
|
||
final class TFCarouselView: TFBaseView { | ||
|
||
lazy var carouselView = TFBaseCollectionView(frame: .zero, collectionViewLayout: createLayout()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Minny27
페이지컨트롤과 컬렉션 뷰를 가지고 있는 케로셀 뷰를 컴포넌트로 분리
Motivation ⍰
Key Changes 🔑
구조 부분
파일 부분
UI 부분
To Reviewers 🙏🏻
예를 들어 유저 인터렉션 없이, 내부 state 변경으로 인해서 Cell UI를 띄어야하는 상황이 오면,
A. 부모 Reactor가 Cell쪽으로 Action을 보내는지
아니면
B. 부모 Reactor가 Cell 거치지 않고, 바로 Cell Reactor에게 직접적으로 Action을 보내는지 궁금합니다.
[src]()
Linked Issue 🔗