我試圖用我的ReusableCell與不同尺寸的圖像細胞。圖像放在一個220x150黑盒子裏,並且縮放比例爲UIViewContentModeScaleAspectFit
。的UITableViewCell在不同尺寸的圖像
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"NewsTableViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NewsItem *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:item.imageUrl]];
[cell.imageView setImage:[[UIImage alloc] initWithData:data]];
[cell.imageView setBackgroundColor:[UIColor blackColor]];
[cell.imageView setContentMode:UIViewContentModeScaleAspectFit];
CGRect imageViewFrame = cell.imageView.frame;
imageViewFrame.size.width = 220;
imageViewFrame.size.height = 150
[cell.imageView setFrame:imageViewFrame];
[cell.textLabel setText:item.title];
return cell;
}
上面的代碼導致下面的佈局,並且在表格視圖中滾動時圖像有時會發生變化。
而是非結構化的佈局,我想的圖像,以這樣的排列:
我在做什麼錯這個ReusableCell?
EDIT1:
我試圖創建的ImageView並添加此ImageView的爲上海華向cell.contentView。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"NewsTableViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NewsItem *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
UIImage *placeholderImage = [UIImage imageNamed:@"ImagePlaceholderThumb"]; //220x150
UIImageView *imageView = [[UIImageView alloc] initWithImage:placeholderImage];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:item.imageUrl]];
[imageView setImage:[[UIImage alloc] initWithData:data]];
[imageView setBackgroundColor:[UIColor blackColor]];
[imageView setContentMode:UIViewContentModeScaleAspectFit];
CGRect imageViewFrame = imageView.frame;
imageViewFrame.size.width = placeholderImage.size.width;
imageViewFrame.size.height = placeholderImage.size.height;
[imageView setFrame:imageViewFrame];
[cell.contentView addSubview:imageView];
[cell.textLabel setText:item.title];
return cell;
}
上面的代碼導致以下:
它像一些圖像是在兩個小區中可見。他們似乎不守我的imageViewFrame設置大小。你知道爲什麼嗎?
你在找什麼叫做信箱和AFAIK,這是UIKit不會爲你做的,除非你自己做。 – Till 2012-01-31 21:20:52
那麼,我該怎麼做呢? – dhrm 2012-01-31 22:59:16
查看評論給我自己的答案。此外,順便說一句,您創建UIImageView並加載其數據的方式每當單元格從屏幕變爲可見時就會發生。你可能會看到一些粗略的滾動。我有兩個不同的方面:0)異步加載圖像數據並將其緩存到EGOImageView之類的內容中,1)通常,當您創建單元格時,您希望創建單元格的子視圖,您只需要在/ /配置單元格... – Keller 2012-02-01 16:54:37