现在我正在尝试从Facebook中提取图像,并将其放在表格视图中。
我不想使用单元格的默认图像视图。因为图像大小可能会有所不同
如何制作图像并将其放入单元格,然后调整单元格高度以使其与图像高度匹配?
任何帮助都会对你有所帮助。
谢谢, Virindh Borra
答案 0 :(得分:0)
您可以在UITableViewDelegate
方法- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
中指定行的高度。使用该方法可以使用imageView
的内置UITableViewCell
属性
编辑:
如果某个原因导致imageView
属性不允许您执行您想要的操作,我会考虑创建UITableViewCell
的自定义子类
答案 1 :(得分:0)
以下内容对我有用:
的 ViewController.h 强> 的
#import <UIKit/UIKit.h>
#import "ResizingCell.h"
@interface ViewController : UITableViewController
@property (strong, nonatomic) IBOutlet ResizingCell *Cell;
@end
的 ViewController.m 强> 的
#import "ViewController.h"
@implementation ViewController
@synthesize Cell;
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
- (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return [(ResizingCell *)[self tableView:tableView cellForRowAtIndexPath:indexPath] getHeight];
}
- (ResizingCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ResizingCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell) {
[[NSBundle mainBundle] loadNibNamed:@"ResizingCell" owner:self options:nil];
cell = [self Cell];
[self setCell:nil];
}
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", [indexPath row]]];
[cell setImage:image];
return cell;
}
@end
的 ResizingCell.h 强> 的
#define BUFFER 20
#import <UIKit/UIKit.h>
@interface ResizingCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIImageView *myImageView;
- (void)setImage:(UIImage *)image;
- (float)getHeight;
@end
的 ResizingCell.m 强> 的
#import "ResizingCell.h"
@implementation ResizingCell
@synthesize myImageView;
- (void)setImage:(UIImage *)image {
[[self myImageView] setImage:image];
// Because the width will be important, I'd recommend setting it here...
[[self myImageView] setFrame:CGRectMake(currFrame.origin.x, currFrame.origin.y, image.size.width, currFrame.size.height)];
}
- (float)getHeight {
return (2 * BUFFER) + [[self myImageView] image].size.height;
}
@end
代码应该是不言自明的。当我用非常高的图像测试它时,它会适当地改变高度。