2017-10-13 7 views
0

스크롤 뷰가 튀어 오를 때 UIImageView 크기를 조정하려고합니다.UIScrollview 고정 된 상단으로 바운스 및 줌

생각이 dribbble에서 도난 : https://dribbble.com/shots/3341878-Product-Page

당신이 볼 수 있듯이, 이미지가있는 ScrollView 아래 수신 거부되어 like'a 스케일링입니다.

내 응용 프로그램에서 UIScrollview 안에 UIImageView가 있습니다. UIScrolvview가 튀어 오르는 동안 UIImageView의 위쪽을 수정하는 방법을 이해할 수 없습니다.

enter image description here

+0

확인이 URL을 중 하나를 사용하는 것이 좋습니다 : https://stackoverflow.com/questions/33481928/imageview-scaling-when-scrolling - 내려. 시나리오에 도움이 될 수 있습니다. – Amit

답변

1

scrollview의 오프셋을 기준으로 imageView에 크기 변형을 적용합니다. 그 라인을 따라 뭔가 : 수신 거부시 오프셋 (offset) 함량이 감소함에 따라 당신이 "수정"이 맨 위로 할 필요가 없습니다 이런 식으로

extension ViewController: UIScrollViewDelegate { 
    public func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     let offset = scrollView.contentOffset 

     if offset.y < 0.0 { 
      var transform = CATransform3DTranslate(CATransform3DIdentity, 0, offset.y, 0) 
      let scaleFactor = 1 + (-1 * offset.y/(imageViewHeightConstraint.constant/2)) 
     transform = CATransform3DScale(transform, scaleFactor, scaleFactor, 1) 
      imageView.layer.transform = transform 
     } else { 
      imageView.layer.transform = CATransform3DIdentity 
     } 
    } 
} 

는 이미지 뷰는 단순히 확장됩니다. 당신이 필요로하는 것은 당신의 imageView가 최고의 제약 (선두, 후행)과 높이를 가졌다는 것입니다.

+0

고마워, 잘하고있어 =) – KaronatoR

0

당신은있는 ScrollView 위의 이미지를 배치하여 '속임수'수 있으며, 당신이 (오프셋 내용을 읽고 결정 scrollviewdelegate에 didScroll 방법에서의 높이를 설정 : 여기

는 내가하고 싶은 것입니다 이미지 높이). 이미지를 가로 채우기로 설정하면 원하는 효과가 나타납니다.

+0

지연이 없다면 효과가 있다고 생각합니까? – KaronatoR

+0

예, 우리도 잘 해냈고 매력처럼 작동합니다 – Simon