UITableViewAutomaticDimension을 사용하여 이미지의 tableViewCell 높이를 동적으로 변경

Neeraj

이미지가 너비에서 imageView를 채우고 이미지가 종횡비를 유지하도록 셀의 높이를 동적으로 변경하고 싶습니다.

나는 이것을 사용하여 시도하고 UITableViewAutomaticDimension있습니다. 온라인에서 사용할 수있는 튜토리얼에 따르면 이것은 간단한 작업 인 것 같습니다. 하지만 제 경우에는 셀의 높이가이 작업을 수행하도록 조정되지 않습니다. 이미지가 가로 세로 비율로 채워져 많은 너비 공간을 비워 두거나 너비를 채우지 만 이미지의 일부를 세로로 자릅니다. 셀 뷰와 관련하여 선행, 후행, 상단 및 하단 제약 조건이 있는지 확인 tableView.rowHeight = UITableViewAutomaticDimension하고 viewDidLoad에 table.estimatedRowHeight가 설정되어 있는지 확인했습니다 . 이 링크에 프로젝트를 업로드했습니다. 누군가 내가 여기서 놓칠 수있는 것을 제안 해 주시겠습니까?

GitHub에 연결

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {


@IBOutlet weak var picTableView: UITableView!

let reuseidentifier = "dynamicCellTableViewCell"
let images = [UIImage(named: "feedImage1"), UIImage(named: "feedImage2"), UIImage(named: "feedImage3")]

override func viewDidLoad() {
    super.viewDidLoad()

picTableView.rowHeight = UITableViewAutomaticDimension
picTableView.estimatedRowHeight = 1000
}

// MARK: Table View Data Source

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return images.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier(reuseidentifier, forIndexPath: indexPath) as! DynamicCellTableViewCell

    cell.displayImageView.image = images[indexPath.row]

    return cell
}



}
Neeraj

나는 해결책을 찾았다. UITableViewAutomaticDimension과 함께 사용할 때 UIImageView는 크기로 UIImage의 실제 너비와 높이 만 찾습니다. 따라서 UIImageView는 레이아웃 제약과 일치하도록 크기 조정 된 너비 (aspectFit)의 크기 조정 된 높이가 아니라 UIImage의 원래 높이에 응답하도록 높이를 조정합니다.

따라서 트릭은 먼저 이미지의 너비와 높이를 셀에 필요한 너비와 높이와 일치하도록 변경하는 것입니다. 나머지 작업은 UITableViewAutomaticDimension에 의해 수행됩니다. 아래는 현재 작동하는 업데이트 된 cellForRowAtIndex 함수입니다. 귀하의 의견을 보내 주셔서 감사합니다.

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier(reuseidentifier, forIndexPath: indexPath) as! DynamicCellTableViewCell

    let image = images[indexPath.row]!
    let newWidth = cell.displayImageView.frame.width
    let scale = newWidth/image.size.width
    let newHeight = image.size.height * scale
    UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight))
    image.drawInRect(CGRectMake(0, 0, newWidth, newHeight))
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    cell.displayImageView.image = newImage

    return cell
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UIButton을 클릭하여 TableViewCell 높이를 동적으로 관리

분류에서Dev

uipath에서 동적으로 vba 호출을 사용하여 Excel에서 행 높이를 변경하는 방법

분류에서Dev

PHP를 사용하여 동적으로 이미지 변경

분류에서Dev

RajawaliVR을 사용하여 렌더링 된 이미지를 동적으로 변경하는 방법

분류에서Dev

태그를 사용하지 않고 tableviewCell 내부의 이미지 버튼을 변경하는 방법

분류에서Dev

tableviewCell에서 클릭 동작으로 2 개의 UIButton 이미지를 변경하는 방법

분류에서Dev

스크롤을 사용하여 정적으로 배치 된 이미지 변경

분류에서Dev

jQuery가 동적으로 생성 된 이미지의 이미지 소스 속성을 변경하지 않음

분류에서Dev

Universal Tween Engine을 사용하여 동적으로 스프라이트 변경

분류에서Dev

jsp를 사용하여 이전 페이지 입력을 기반으로 웹 페이지의 내용을 동적으로 변경할 수 있습니까?

분류에서Dev

dplyr 동적 변수 이름을 사용하여 ifelse로 변경

분류에서Dev

Jquery / Javascript를 사용하여 팝 오버의 데이터 내용을 동적으로 변경

분류에서Dev

UIView 높이를 동적으로 변경

분류에서Dev

div 높이를 동적으로 변경

분류에서Dev

블레이드 foreach 루프 내에서 JS를 사용하여 div CSS 배경을 동적으로 변경

분류에서Dev

동적 tableViewCell 높이

분류에서Dev

onCreateView의 기능을 사용하여 동적으로 뷰 변경

분류에서Dev

jquery를 사용하여 동적으로 배경 이미지 변경 및 애니메이션

분류에서Dev

jquery를 사용하여 테이블 셀에서 글꼴을 동적으로 변경하는 방법

분류에서Dev

JavaFx에서 스테이지 높이를 동적으로 변경하는 방법

분류에서Dev

summarise () 및 complete ()를 사용하여 생성 된 열 이름을 동적으로 변경

분류에서Dev

지시문 Angular JS를 사용하여 텍스트의 색상을 동적으로 변경

분류에서Dev

MEDIA_URL 및 jquery를 사용하여 동적으로 배경 이미지 변경

분류에서Dev

자바 스크립트를 사용하여 TinyMCE 편집기의 배경을 동적으로 변경

분류에서Dev

막대 차트의 높이를 동적으로 변경하는 방법

분류에서Dev

앵커 태그 각도를 사용하여 div의 내용을 동적으로 변경

분류에서Dev

입력 텍스트 필드를 사용하여 Javascript로 함수의 값을 동적으로 변경

분류에서Dev

사용자 지정 지연이있는 자바 스크립트를 사용하여 루프에서 래퍼 배경을 동적으로 변경

분류에서Dev

jquery를 사용하여 CSS의 속성을 동적으로 변경하는 방법

Related 관련 기사

  1. 1

    UIButton을 클릭하여 TableViewCell 높이를 동적으로 관리

  2. 2

    uipath에서 동적으로 vba 호출을 사용하여 Excel에서 행 높이를 변경하는 방법

  3. 3

    PHP를 사용하여 동적으로 이미지 변경

  4. 4

    RajawaliVR을 사용하여 렌더링 된 이미지를 동적으로 변경하는 방법

  5. 5

    태그를 사용하지 않고 tableviewCell 내부의 이미지 버튼을 변경하는 방법

  6. 6

    tableviewCell에서 클릭 동작으로 2 개의 UIButton 이미지를 변경하는 방법

  7. 7

    스크롤을 사용하여 정적으로 배치 된 이미지 변경

  8. 8

    jQuery가 동적으로 생성 된 이미지의 이미지 소스 속성을 변경하지 않음

  9. 9

    Universal Tween Engine을 사용하여 동적으로 스프라이트 변경

  10. 10

    jsp를 사용하여 이전 페이지 입력을 기반으로 웹 페이지의 내용을 동적으로 변경할 수 있습니까?

  11. 11

    dplyr 동적 변수 이름을 사용하여 ifelse로 변경

  12. 12

    Jquery / Javascript를 사용하여 팝 오버의 데이터 내용을 동적으로 변경

  13. 13

    UIView 높이를 동적으로 변경

  14. 14

    div 높이를 동적으로 변경

  15. 15

    블레이드 foreach 루프 내에서 JS를 사용하여 div CSS 배경을 동적으로 변경

  16. 16

    동적 tableViewCell 높이

  17. 17

    onCreateView의 기능을 사용하여 동적으로 뷰 변경

  18. 18

    jquery를 사용하여 동적으로 배경 이미지 변경 및 애니메이션

  19. 19

    jquery를 사용하여 테이블 셀에서 글꼴을 동적으로 변경하는 방법

  20. 20

    JavaFx에서 스테이지 높이를 동적으로 변경하는 방법

  21. 21

    summarise () 및 complete ()를 사용하여 생성 된 열 이름을 동적으로 변경

  22. 22

    지시문 Angular JS를 사용하여 텍스트의 색상을 동적으로 변경

  23. 23

    MEDIA_URL 및 jquery를 사용하여 동적으로 배경 이미지 변경

  24. 24

    자바 스크립트를 사용하여 TinyMCE 편집기의 배경을 동적으로 변경

  25. 25

    막대 차트의 높이를 동적으로 변경하는 방법

  26. 26

    앵커 태그 각도를 사용하여 div의 내용을 동적으로 변경

  27. 27

    입력 텍스트 필드를 사용하여 Javascript로 함수의 값을 동적으로 변경

  28. 28

    사용자 지정 지연이있는 자바 스크립트를 사용하여 루프에서 래퍼 배경을 동적으로 변경

  29. 29

    jquery를 사용하여 CSS의 속성을 동적으로 변경하는 방법

뜨겁다태그

보관