2017-11-08 6 views
0

스위프트 4.0에 응용 프로그램이 있는데 여기에는 화면과 같이 넓은 여러 이미지가 포함 된 넓은 스크롤 뷰가 있습니다. 현재 사용자가 스 와이프하여 완벽하게 작동합니다. 왼쪽 및 오른쪽 페이징 단추를 추가하는 중입니다. 단추 중 하나에 대한 코드는 아래에 있습니다 (왼쪽 단추는 동일한 구조를 가짐).내용 오프셋이 스위프트에서 업데이트되지 않습니다.

버튼을 오른쪽 또는 왼쪽으로 페이지하면 콘텐츠 오프셋이 전혀 변경되지 않습니다. 예를 들어, # 1 페이지에서 시작하면 가로 콘텐트 오프셋이 0입니다. scrollRight 함수를 실행하면 페이지 # 2 ("content offset = 0"이 출력 됨)가 표시 되더라도 콘텐트 오프셋은 0으로 유지됩니다. 내가 대신으로 스 와이프하면, 내가 잘못

func scrollRight(){ 
    let currentX = sectionScroll.contentOffset.x 
    let newX = currentX + UIScreen.main.bounds.width 
    sectionScroll.setContentOffset(CGPoint(x: newX, y: 0), animated: true) 
    print("content offset= ", sectionScroll.contentOffset.x) 
} 

를하고있는 중이 야 무엇을 (그것은 "내용 = 414 오프셋"인쇄합니다)이 페이지 # 2를 표시하지만 내용은 UIScreen.main.bounds.width 업데이트를 상쇄? UIScrollViews의 기능을 이해하지 못합니까? 버튼을 사용하여 다음 페이지를 표시하고 스크롤하는 것과 같은 방식으로 내용 오프셋을 업데이트 할 수 있습니까? 나중에 코드에서 콘텐츠 오프셋을 사용하여 사용자가보고있는 페이지를 결정하므로 사용자가 페이지를 스 와이프하거나 클릭하는지 여부를 업데이트 할 수 있기를 바랍니다.

답변

0

다른 누구도 비슷한 문제가있는 경우 해결책을 찾았습니다.

애니메이션을 "true"로 설정하면 새 오프셋으로 이동하는 데 시간이 걸립니다. 그러므로, 당신은 그것을 고려해야 만합니다. 나머지 코드를 실행하기 전에 잠깐 지연을 거두었습니다. 다른 방법이있을 것이라고 확신합니다.