我有一個標準的(即不是自定義的)帶有文本和圖像的TableView單元格,問題是我的圖像大小不同,我想把它們放入類似UIViewContentModeScaleAspectFill的東西。我只是希望UIImage是54x54,而不是一直調整大小 - 我只是想讓它們變成方形!在iOS中停止TableView單元格UIImage的大小調整
有很多想法,但他們都沒有工作,離我最近的工作,但圖像是在文本的頂部(它添加了另一個圖像作爲子視圖)。
我並不熱衷於使用自定義單元格,因爲我使用編輯模式來拖動某些東西,而且我還沒有想通過自定義單元格。
編輯
我最近試過了;
UIImage *tempImage = [UIImage imageWithData:data];
CGSize size = CGSizeMake(54, 54);
UIGraphicsBeginImageContext(size);
[tempImage drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
cell.imageView.image = scaledImage;
我有這在cellForRow,我希望會這樣做;
cell.imageView.contentMode = UIViewContentModeScaleAspectFill;
這隻適用於自定義單元格;
- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.frame = CGRectMake(0,0,54,54);
}
這很好用,但它涵蓋了文本;
UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 54, 54)];
imgView.backgroundColor=[UIColor clearColor];
[imgView.layer setCornerRadius:8.0f];
[imgView.layer setMasksToBounds:YES];
[imgView setImage:[UIImage imageWithData: imageData]];
[cell.contentView addSubview:imgView];
這顯示了我的確切問題;
ANOTHER編輯
好這個工作,謝謝;
[cell setIndentationWidth:54];
[cell setIndentationLevel:1];
UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 54, 54)];
imgView.backgroundColor=[UIColor clearColor];
[imgView.layer setMasksToBounds:YES];
[imgView setImage:myImages[indexPath.row]];
[cell.contentView addSubview:imgView];
你嘗試什麼選擇嘗試一下呢? – Wain