ForEach 의 값을 어레이에서 받아왔는데요. 스크롤뷰리더로 감싸면 리프레쉬가 안됩니다.
274
작성한 질문수 7
선생님^^ 스크롤뷰를 만들고 그안에
포이치로 값을 죽~ 보이게 했어요. 그 값은 모델에서 불러오는데요.
어레이에 어펜드를 하면 자동으로 스크롤뷰가 갱신이 되고 맨 아래 새로운 값이 추가되서 보이더라구요. 그런데 그 값이 화면을 넘어가면 가려져서 바로는 안보이고 손으로 스크롤을 해야 보입니다.
그래서 배운데로 스크롤뷰리더로 포이치구문을 감싸고
scrollTo 를 이용해서 .bottom 이 되도록해서
어레이에 새로 추가된 값이 항상 화면에 보이게 하고 싶은데요.
스크롤뷰리더를 사용하면 어레이 값을 처음에 딱 한번만 불러오고
추가로 어펜드 된 값들이 보이지를 않습니다. 왜그런 걸까요???
답변 1
0
안녕하세요
질문만 보고는 어떤 문제인지 확인이 어렵기 때문에
버튼을 누르면 데이터 추가하는 부분과
onChange를 통해서 데이터가 추가되는 순간을 캐치해서 아래로 내려가는 부분을 간단히 만들어봤습니다.
코드 보시고 참고하시면 될 것 같습니다.
struct ContentView: View {
struct DummyModel: Hashable {
var number = 0
}
@State private var pxy: ScrollViewProxy?
@State private var models = [DummyModel]()
@State private var number = 0
var body: some View {
VStack{
Button("Scroll To " + (self.models.last?.number.description ?? "")) {
withAnimation(.easeInOut) {
pxy?.scrollTo(self.models.count - 1, anchor: .bottom)
}
}
Button("add Data") {
self.models.append(DummyModel( number: number))
number += 1
}
ScrollViewReader(content: { proxy in
ScrollView{
ForEach(0..<models.count, id: \.self) { index in
Text("\(models[index].number)")
.padding()
}
}
.onAppear(perform: {
self.pxy = proxy
})
.onChange(of: self.models, perform: { value in
withAnimation(.easeInOut) {
pxy?.scrollTo(self.models.count - 1, anchor: .bottom)
}
})
})
}
}
}
커스텀 팝업 사용하는 방법
0
266
1
Grid View 강의에서 animation 질문
0
371
1
iOS 16 ScrollView에서 proxy.scrollTo 오류
0
610
2
10 list section 강의 잘린건가요?
0
356
2
Conflicting arguments to generic parameter 'Content' 에러 질문
0
819
1
tickCount에러 문의
0
378
1
Picker를 사용해서 각 item별로 다른 값을 Core Data에 저장하려고 합니다.
0
234
0
강의 파일 다운로드
0
370
2
Grid강의 듣다가 궁금해서 글 남깁니다
0
269
1
sceneDelegate
0
293
1
ClockNumber 에러발생
0
385
2
강의 순서 문의
0
235
1
grid 질문 있습니다!
0
243
1
안녕하세요
0
275
1
LazeVGrid 관련 문의드립니다
0
212
1
질문 드립니다.
0
194
1
버튼과 토글에서 State관련 문의
0
245
1
UIView vs. UIViewController 질문입니다.
0
377
1
선생님. 질문드립니다.
0
289
1
앱개발하다가 궁금한 부분이 생겨서 질문 드립니다
0
265
1
기존 앱개발하다가 해당 강의를 듣는 도중 궁금한 부분이 생겨서 여쭤봅니다.
0
271
1
바인딩 값에 특정 하나의 값을 할당하기
0
284
3
1234567 곱하기 2를 계산을 하면 2.46913e+06 이렇게 나오네요???
0
282
2
iOS 버전이 바뀐건지 .center 가 안되는 이유가 뭔지 궁금합니다.
0
276
1





