2017-09-03 5 views
0

Current implementation of floating buttonUIButton을 부동 상태로 유지하는 방법 scrollViewDidScroll (_ scrollView : UIScrollView)이 바닥에 도달 했습니까?

다음은 현재 구현입니다. 회색 버튼은 스크롤 뷰에서 부동입니다. 노란색보기 (스크롤보기 끝)에 도달하면 버튼을 표시하는 방법이 있습니까? 그런 다음 맨 아래 화면에 떠있게하십시오. 내가 바로 당신이 원하는 당신을 이해한다면

@IBOutlet weak var btnScroll: UIButton! 

var startingFrame : CGRect! 
var endingFrame : CGRect! 

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) && self.btnScroll.isHidden { 
     self.btnScroll.isHidden = false 
     self.btnScroll.frame = startingFrame // outside of screen somewhere in bottom 
     UIView.animate(withDuration: 1.0) { 
      self.btnScroll.frame = self.endingFrame // where it should be placed 
     } 
    } 
} 

func configureSizes() { 
    let screenSize = UIScreen.main.bounds 
    let screenWidth = screenSize.width 
    let screenHeight = screenSize.height 

    startingFrame = CGRect(x: 0, y: screenHeight+100, width: screenWidth, height: 100) 
    endingFrame = CGRect(x: 0, y: screenHeight-100, width: screenWidth, height: 100) 

} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    configureSizes() 
} 

Latest image shown like this. Button is constant and doesn't move

+1

그냥 숨길 수 있습니다 보여 당신의 if 문에 이미 계산 주석이 버튼을 숨기기를 취소하기 전에 당신의 버튼을 숨기려면이 코드를 추가 ? 아니면 달성하기를 원하는 것입니까? –

+0

@ 가짜 감사합니다. 응답 해 주셔서 감사합니다. 사용자가'UIScrollView' 내용을 볼 때 버튼은 나타나지 않을 것입니다. 마치 노란색으로 보였던 것처럼 보입니다. 일단 화면에 나타나면 위의 그림과 같이 지속되어야합니다. 위의 방법으로 숨김으로써 노란색보기 아래에있는 것처럼 보이지 않고 화면에 갑자기 나타나지 않습니까? 다시 감사합니다. 도와 주실 수 있겠습니까? –

+1

음, UIView 애니메이션 메서드를 사용하여 화면에 애니메이션을 적용 할 수 있습니다. 일단 애니메이션이 끝나면 다시 숨기지 않고 그대로 둘 수 있습니다. 다음은 그 예입니다 : https://stackoverflow.com/questions/42326892/uiview-appereance-from-bottom-to-top-and-vice-versacore-animation –

답변

1

: 지금까지 시도했다의 추가 코드를 추가

override func scrollViewDidScroll(scrollView: UIScrollView) { 

if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) { 
    //reached bottom - how to show button below yellow 
    // and keep it floating as shown above 
} 
} 

:

나는 다음과 같은 코드를 사용하고 있습니다 GIF에 표시된 위치에 단추를 넣으십시오

다음 코드를 시도해보십시오 :

override func scrollViewDidScroll(scrollView: UIScrollView) { 
    if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) && self.button.isHidden { 
    self.button.isHidden = false 
    self.button.frame = startingFrame // outside of screen somewhere in bottom 
    UIView.animate(withDuration: 1.0) { 
     self.button.frame = yourFrame // where it should be placed 
    } 
    } 
} 

UPDATE

애니메이션이 /가

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.button.isHidden = true 
    ... 
} 
+0

감사합니다. 위의 업데이트 된 코드를 확인하십시오. 이보기에는 현재 스토리 보드 제약이 전혀 없습니다. 그래도 원하는 결과가 나오지 않습니다. –

+0

정확히 작동하지 않은 것은 무엇입니까? –

+0

스크롤을 수행하지 않아도 회색 버튼이 화면에 계속 나타납니다. 모든 스토리 보드 자동 레이아웃 제약 조건을 제거했습니다. 내가 현재보고있는 방법에 대한 스크린 샷을 첨부하겠습니다. –