- This topic has 12개 답변, 4명 참여, and was last updated 4 years, 5 months 전에 by 야곰.
-
글쓴이글
-
-
jckang568참가자
- 글작성 : 1
- 답글작성 : 6
안녕하세요 동영상으로 질문 있습니다.
네비게이션뷰를 연습하고 있는데요.
스크롤 시 largeTitle이 사라지고 inline에 타이틀이 생기는 애니메이션이 있는데
display : inline 을 하게 되면 이 뷰에 들어오자마자 inline에 ‘Lorem Ipsum’ 이 나옵니다.(즉 애니메이션이 사라집니다.)
최종적인 질문은 이 뷰에서 largeTitle만 없애고 inlineTitle이 사라졌다 나타졌다 하는 애니메이션은 작동하게 하고 싶은데 어디서 컨트롤 해야할까요?비슷한 코드는 영상 아래에 첨부 하겠습니다.
<article id=”702bf36e-ce97-4a25-8acc-933460cfd829″ class=”page sans”>
<div class=”page-body”>import SwiftUI struct ContentView: View { let test = ArticleContent() var body: some View { TabView { NavigationView { ScrollView{ Text(test.content) } .navigationBarTitle("Page One") } .tabItem { (Image(systemName: "1.circle")) Text("1 Page") } NavigationView { ScrollView{ Text(test.content) } .navigationBarTitle("Page Two") } .tabItem { (Image(systemName: "2.circle")) Text("2 Page") } NavigationView { ScrollView{ Text(test.content) } .navigationBarTitle("Page Three") } .tabItem { (Image(systemName: "3.circle")) Text("3 Page") } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { SwiftUIView() } }
<p id=”e6728dfc-689d-48f9-aa2c-4a5eebf9ed87″ class=””> </p>
</div>
</article>2020-07-10 오후 3:42 #26264 -
jckang568참가자
- 글작성 : 1
- 답글작성 : 6
답변 감사드립니다.
navigationBarTitle에 1가지 파라미터(Text: String)만 넘기면 displayMode는 default값이 automatic이라 제가 원하는 답변은 아니었습니다.
제 질문이 약간 어려웠을 수도 있는데 앱스토어에서 쉽게 받을 수 있는 앱으로 설명을 한번 드려보겠습니다.
벅스라는 음악 스트리밍 어플인데 처음 홈화면은 일반적인 네비게이션처럼 automatic이 되어있습니다.
그러나 로그인시에는 largeTitle 부분이 사용자 값을 읽어들인 상태에서 뷰를 뿌려주는데 inline시에는 여전히 홈으로 되어있습니다.
(inline title 부분에 ‘jckang568님 요즘 Pick>’ 이 나오는게 아니라 여전히 ‘홈’이 나옵니다.)
이걸 간단하게나마 구현하려고 하는데 어려움이 있습니다.
iOS 카카오톡 오픈톡방에 질문을 하였으나 1500명 가까이 되는인원이 관심도 가져주질 않아 돌고 돌아 여기까지 오게되었습니다.
스택오버플로우도 몇시간 뒤졌지만 만족할 만한 답이 있질 않아 다시 한번 질문을 올립니다.
제 질문이 어려운건지 제 설명에 문제가 있는건지 답답합니다.
2020-07-10 오후 6:26 #26287 -
-
-
TTOzzi참가자
- 글작성 : 10
- 답글작성 : 13
혹시 해결하셨나요?!
Swift UI 는 아직 사용하는 사람이 별로 없어서 그런지 정보가 없네요 ㅜㅜ
저도 공부하는 처지라 정확하진 않지만 GeometryReader 를 활용해서 ScrollView 의 frame 값과 ScrollView 내부 컨텐츠들의 frame 값을 비교하면 드래그되어 largeTitle 이 inlineTitle 로 변경되는 시점을 찾을 수 있었어요. 두 frame 값을 비교해서 title 을 바꿔주도록 하긴 했는데 동작이 어색하네요 ㅎㅎ;
DragGesture 를 활용해도 스크롤하는 시점을 잡을 수 있긴 한데.. 어렵네요.
도움이 되었으면 좋겠어요!struct ContentView: View { var body: some View { NavigationView { GeometryReader { scrollViewGeometry in ScrollView{ GeometryReader { contentGeometry in VStack { Text("scroll: \(scrollViewGeometry.frame(in: .global).minY)\ncontent: \(contentGeometry.frame(in: .global).minY)hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohell") .font(.system(size: 50)) } .navigationBarTitle(contentGeometry.frame(in: .global).minY < scrollViewGeometry.frame(in: .global).minY - 1 ? "inline title" : "large title", displayMode: .large) } .frame(width: scrollViewGeometry.size.width, height: 1000) } } } } }
2020-07-12 오후 10:27 #26359
-
-
-
-
멍단비참가자
- 글작성 : 10
- 답글작성 : 98
질문하셨다가 답변 못받는걸로는 너무 상심하지마세요~
위에 야곰님 말씀대로 아직 SwiftUI가 널리 안쓰여서 그런것도 있고, 설사 아는거라도 애매하게 기억나는건 답변안하죠 보통. 잘못된 정보를 전달하면 안되니까요.
그리고 어차피 개발자 여러명 있는 곳에 가도 자기분량 개발은 혼자하는거라서 차라리 지금 구현 죽어도 안 될것 같다 싶으시면 그냥 놔버리세요.
그리고 한 1~2주일있다가 다시 보면 금방 해결되는 경우도 많아요. 그런 경험이 쌓이면 더 좋다고 봐요. 스스로 해결하는 능력이 생기는 거니까요.
결정적으로 저도 그 방에 들어가있지만 질문에 답변 못받은 경우 많아요. 다들 업무중이시고 바쁜분들이니 돈내고 리뷰서비스를 받는게 아닌이상 답변해주셔야할 의무는 없는거니까요.
힘내시고 저도 스유는 흉내만 내봐서 답변은 못드리고 응원만 하고 갈게요~ 파이팅2020-07-11 오후 12:43 #26307
-
-
글쓴이글
- 답변은 로그인 후 가능합니다.