UITableViewCell的 Cell 内的图片自适应高度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITableViewCell的 Cell 内的图片自适应高度相关的知识,希望对你有一定的参考价值。

  1 #import "MainViewController.h"
  2 
  3 #import "MyCell.h"
  4 
  5 @interface MainViewController ()<UITableViewDelegate, UITableViewDataSource>;
  6 
  7 
  8 
  9 @end
 10 
 11 
 12 @implementation MainViewController
 13 
 14 
 15 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
 16 
 17 {
 18 
 19     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
 20 
 21     if (self) {
 22 
 23         // Custom initialization
 24 
 25         
 26 
 27         self.array = [NSMutableArray array];
 28 
 29         
 30 
 31         for (int i = 0; i < 26; i++) {
 32 
 33             UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i]];
 34 
 35             [self.array addObject:image];
 36 
 37         }
 38 
 39     }
 40 
 41     return self;
 42 
 43 }
 44 
 45 
 46 - (void)viewDidLoad
 47 
 48 {
 49 
 50     [super viewDidLoad];
 51 
 52     // Do any additional setup after loading the view.
 53 
 54     
 55 
 56     self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)style:UITableViewStylePlain];
 57 
 58     self.tableView.delegate = self;
 59 
 60     self.tableView.dataSource = self;
 61 
 62     
 63 
 64     [self.view addSubview:self.tableView];
 65 
 66     [self.tableView release];
 67 
 68 }
 69 
 70 
 71 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 72 
 73 {
 74 
 75     // 在tableView的协议方法中制定 每个cell的高度
 76 
 77     
 78 
 79     UIImage *image = [self.array objectAtIndex:indexPath.row];
 80 
 81     
 82 
 83     // cell的高度 = cell的宽度 * 图片的高度 / 图片的宽度
 84 
 85     CGFloat cellHeight = tableView.bounds.size.width * image.size.height / image.size.width;
 86 
 87     return cellHeight;
 88 
 89     
 90 
 91 }
 92 
 93 
 94 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 95 
 96 {
 97 
 98     NSLog(@"%d", self.array.count);
 99 
100     return [self.array count];
101 
102 }
103 
104 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
105 
106 {
107 
108     static NSString *cellID = @"Reuse";
109 
110     MyCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
111 
112     if (cell == nil) {
113 
114         cell = [[[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]autorelease];
115 
116     }
117 
118     UIImage *image = [self.array objectAtIndex:indexPath.row];
119 
120     cell.myImageView.image = image;
121 
122     return cell;
123 
124 }
125 
126 - (void)didReceiveMemoryWarning
127 
128 {
129 
130     [super didReceiveMemoryWarning];
131 
132     // Dispose of any resources that can be recreated.
133 
134 }

 

以上是关于UITableViewCell的 Cell 内的图片自适应高度的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 内的 UICollectionView:每个的“reloadData”顺序?

自动滚动到放置在 UITableViewCell 内的 textView 光标在 iOS11 中不起作用

UITableViewCell 中的屏蔽图像

新手教程之使用Xib自定义UITableViewCell

UITableViewCell中的使用cell和cell.contentView的区别

CustomTableCell 内的 UICollectionView