UITableView 스크롤에서 UIImageView 콘텐츠 (이미지)를 축소하는 방법은 무엇입니까?

J. Doe

이 효과를 얻으려고 노력하고 있습니다.

https://cdn.dribbble.com/users/124059/screenshots/3727352/400.gif

이것을 위해 내가하고있다 :

override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CardCell", for: indexPath) as! CardTableViewCell

    UIView.animate(withDuration: 0.5, delay: 0.3, usingSpringWithDamping: 0.1, initialSpringVelocity: 0.5, options: .curveEaseInOut, animations: {
        cell.coverImageView.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
    }, completion: nil)
}

그러나이 코드는 UIImageView 내부의 이미지가 아닌 UIImageView 프레임의 크기를 조정합니다.

코드를 어떻게 개선 할 수 있습니까?

agibson007

트릭은 imageView의 프레임을 엉망으로 만들고 콘텐츠 모드가 변경되는 것처럼 보이게 만드는 것입니다. 프레임이나 제약 조건을 조작하여 다른 뷰 내에서 마스킹 할 수 있습니다. 예제를 실행하고 알려주세요.

import UIKit

class ViewController: UIViewController {

    var imageView = UIImageView()
    var maskView = UIView()
    var frame : CGRect = .zero

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        view.layoutIfNeeded()
        imageView = UIImageView(frame: CGRect(x: 20, y: 40, width: view.bounds.width-40, height: view.bounds.height/2))
        imageView.image = UIImage(named: "img")
        imageView.contentMode = .scaleAspectFill


        maskView = UIView(frame: CGRect(x: 20, y: 40, width: view.bounds.width-40, height: view.bounds.height/2))
        maskView.addSubview(imageView)
        maskView.layer.masksToBounds = true
        maskView.layer.cornerRadius = 6
        self.view.addSubview(maskView)

        //manipulate the imageView to make the content mode seem to change
        // and have it redraw itself
        frame = imageView.frame
        var newFrame = frame
        newFrame.size.height += newFrame.height
        imageView.frame = newFrame
        imageView.center = maskView.center


        let button = UIButton(frame: CGRect(x: 20, y: maskView.frame.maxY + 60, width: view.bounds.width - 40, height: 40))
        button.setTitle("Animate", for: .normal)
        button.setTitleColor(.blue, for: .normal)
        button.addTarget(self, action: #selector(ViewController.pressed), for: .touchUpInside)
        self.view.addSubview(button)


        let AnotherButton = UIButton(frame: CGRect(x: 20, y: button.frame.maxY + 20, width: view.bounds.width - 40, height: 40))
        AnotherButton.setTitle("Reset", for: .normal)
        AnotherButton.setTitleColor(.blue, for: .normal)
        AnotherButton.addTarget(self, action: #selector(ViewController.reset), for: .touchUpInside)
        self.view.addSubview(AnotherButton)
    }

    func pressed() {
        //animate
        // screw around with the imageView back to the original frame
        // you could also do this with the height constraints if it was constraint based
        UIView.animate(withDuration: 1.0, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1.0, options: .curveEaseOut, animations: {
            self.imageView.frame = self.maskView.bounds
        }, completion: nil)

    }

    func reset() {
        //reset big frame
        var newFrame = frame
        newFrame.size.height += newFrame.height

        UIView.animate(withDuration: 1.0, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity: 1.0, options: .curveEaseOut, animations: {
            self.imageView.frame = newFrame
            self.imageView.center = self.maskView.center
        }, completion: nil)

    }

}

결과: 줌

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스크롤하지 않고 모든 콘텐츠에 맞게 큰 목록으로 UITableView의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

Unity에서 핀치 제스처로 스크롤 뷰 콘텐츠를 확대 / 축소하는 적절한 방법은 무엇입니까?

분류에서Dev

내 UIViewController 콘텐츠를 스크롤하는 방법은 무엇입니까?

분류에서Dev

스크롤 없음 iframe에서 콘텐츠 위치를 변경하는 방법은 무엇입니까?

분류에서Dev

Scrapy : 사이트에 들어가서 콘텐츠를 크롤링하기 전에 링크 이미지를 크롤링하는 방법은 무엇입니까?

분류에서Dev

페이지의 관련 콘텐츠 링크에 의미를 부여하는 방법은 무엇입니까?

분류에서Dev

Showdown Markdown Editor : 콘텐츠에 맞게 이미지 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

Swift에서 Search Bar로 사용자 지정 셀이있는 UITableView의 콘텐츠를 필터링하는 방법은 무엇입니까?

분류에서Dev

콘텐츠가없는 상태에서 배경 이미지를 표시하는 방법은 무엇입니까?

분류에서Dev

Ajax에서 반환 한 웹 페이지 콘텐츠를 스크랩하는 방법은 무엇입니까?

분류에서Dev

웹 페이지 콘텐츠를 고정 헤더 위로 스크롤하는 방법은 무엇입니까?

분류에서Dev

콘텐츠 스크립트에서 이벤트 페이지를 가져 오는 방법은 무엇입니까?

분류에서Dev

일수에 따라 이미지 색상 및 콘텐츠를 변경하는 방법은 무엇입니까?

분류에서Dev

div의 콘텐츠 위에 이미지를 배치하는 방법은 무엇입니까?

분류에서Dev

캔버스의 다른 모든 콘텐츠 뒤에 이미지를 그리는 방법은 무엇입니까?

분류에서Dev

WordPress 콘텐츠에서 이미지를 가져 오는 방법은 무엇입니까?

분류에서Dev

WordPress 콘텐츠에서 이미지를 가져 오는 방법은 무엇입니까?

분류에서Dev

Spring React에서 gzip으로 압축 된 콘텐츠를 압축 해제하는 방법은 무엇입니까?

분류에서Dev

iOS에서 Tableview 콘텐츠를 검색하는 방법은 무엇입니까?

분류에서Dev

HighCharts에서 콘텐츠 $ scope를 표시하는 방법은 무엇입니까?

분류에서Dev

Flutter : 콘텐츠가 아닌 컨테이너를 스크롤하는 방법은 무엇입니까?

분류에서Dev

Android에서 콘텐츠를 지나서 레이아웃 스크롤을 만드는 방법은 무엇입니까?

분류에서Dev

캔버스 콘텐츠의 크기를 조정하고 이미지를 서버에 업로드하는 방법은 무엇입니까?

분류에서Dev

웹 사이트가 크롤링되지 않는 콘텐츠를 차단하는 동안 Python에서 크롤링하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 PHP 루프에 콘텐츠를 추가하는 방법은 무엇입니까?

분류에서Dev

다음 출시를 위해 UITableView 콘텐츠를 저장하는 방법은 무엇입니까?

분류에서Dev

콘텐츠에서 바이너리 압축 유형을 식별하는 방법은 무엇입니까?

분류에서Dev

Java에서 Liferay 웹 콘텐츠를 만드는 방법은 무엇입니까?

분류에서Dev

Svelte에서 요소 콘텐츠의 스타일을 지정하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    스크롤하지 않고 모든 콘텐츠에 맞게 큰 목록으로 UITableView의 크기를 조정하는 방법은 무엇입니까?

  2. 2

    Unity에서 핀치 제스처로 스크롤 뷰 콘텐츠를 확대 / 축소하는 적절한 방법은 무엇입니까?

  3. 3

    내 UIViewController 콘텐츠를 스크롤하는 방법은 무엇입니까?

  4. 4

    스크롤 없음 iframe에서 콘텐츠 위치를 변경하는 방법은 무엇입니까?

  5. 5

    Scrapy : 사이트에 들어가서 콘텐츠를 크롤링하기 전에 링크 이미지를 크롤링하는 방법은 무엇입니까?

  6. 6

    페이지의 관련 콘텐츠 링크에 의미를 부여하는 방법은 무엇입니까?

  7. 7

    Showdown Markdown Editor : 콘텐츠에 맞게 이미지 크기를 조정하는 방법은 무엇입니까?

  8. 8

    Swift에서 Search Bar로 사용자 지정 셀이있는 UITableView의 콘텐츠를 필터링하는 방법은 무엇입니까?

  9. 9

    콘텐츠가없는 상태에서 배경 이미지를 표시하는 방법은 무엇입니까?

  10. 10

    Ajax에서 반환 한 웹 페이지 콘텐츠를 스크랩하는 방법은 무엇입니까?

  11. 11

    웹 페이지 콘텐츠를 고정 헤더 위로 스크롤하는 방법은 무엇입니까?

  12. 12

    콘텐츠 스크립트에서 이벤트 페이지를 가져 오는 방법은 무엇입니까?

  13. 13

    일수에 따라 이미지 색상 및 콘텐츠를 변경하는 방법은 무엇입니까?

  14. 14

    div의 콘텐츠 위에 이미지를 배치하는 방법은 무엇입니까?

  15. 15

    캔버스의 다른 모든 콘텐츠 뒤에 이미지를 그리는 방법은 무엇입니까?

  16. 16

    WordPress 콘텐츠에서 이미지를 가져 오는 방법은 무엇입니까?

  17. 17

    WordPress 콘텐츠에서 이미지를 가져 오는 방법은 무엇입니까?

  18. 18

    Spring React에서 gzip으로 압축 된 콘텐츠를 압축 해제하는 방법은 무엇입니까?

  19. 19

    iOS에서 Tableview 콘텐츠를 검색하는 방법은 무엇입니까?

  20. 20

    HighCharts에서 콘텐츠 $ scope를 표시하는 방법은 무엇입니까?

  21. 21

    Flutter : 콘텐츠가 아닌 컨테이너를 스크롤하는 방법은 무엇입니까?

  22. 22

    Android에서 콘텐츠를 지나서 레이아웃 스크롤을 만드는 방법은 무엇입니까?

  23. 23

    캔버스 콘텐츠의 크기를 조정하고 이미지를 서버에 업로드하는 방법은 무엇입니까?

  24. 24

    웹 사이트가 크롤링되지 않는 콘텐츠를 차단하는 동안 Python에서 크롤링하는 방법은 무엇입니까?

  25. 25

    자바 스크립트에서 PHP 루프에 콘텐츠를 추가하는 방법은 무엇입니까?

  26. 26

    다음 출시를 위해 UITableView 콘텐츠를 저장하는 방법은 무엇입니까?

  27. 27

    콘텐츠에서 바이너리 압축 유형을 식별하는 방법은 무엇입니까?

  28. 28

    Java에서 Liferay 웹 콘텐츠를 만드는 방법은 무엇입니까?

  29. 29

    Svelte에서 요소 콘텐츠의 스타일을 지정하는 방법은 무엇입니까?

뜨겁다태그

보관