我在分组的tableview中显示大图像。我希望图像能够填满整个屏幕的宽度。我已经能够使用tableViewCell界面构建器来完成这项工作,但为了提高性能,我现在尝试以编程方式执行此操作。
但是,我无法让图像在屏幕左侧齐平。它似乎是在分组的tableview中使用单元格的默认位置。
我能够使用普通的tableview使其工作,但是然后部分标题锚定在屏幕顶部,我需要它们滚动。
有任何想法如何以编程方式执行此操作?这是我下面的原始代码。 谢谢!
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyTableViewCellIdentifier = @"Cell";
MyTableViewCell *cell = (MyTableViewCell *)
[tableView dequeueReusableCellWithIdentifier: MyTableViewCellIdentifier];
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyTableViewCell" owner:self options:nil];
for(id currentObject in nib)
{
cell = (DetailTableViewCell *)currentObject;
}
MyAppAppDelegate *appDelegate = (MyTableViewCell *)[[UIApplication sharedApplication] delegate];
NSString *Path = [[NSBundle mainBundle] bundlePath];
NSString *MainImagePath = [Path stringByAppendingPathComponent:
([[appDelegate.myDictionaryOfImages objectAtIndex:indexPath.section] objectForKey:@"LargeImage"])];
cell.myLargeImage.image = [UIImage imageWithContentsOfFile:MainImagePath];
return cell;
}
答案 0 :(得分:1)
我终于开始工作了。这是我的最终代码。
#define PHOTO_TAG 1
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Photo";
UIImageView *photo;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIImage *theImage = [UIImage imageNamed:[[appDelegate.sectionsDelegateDict objectAtIndex:indexPath.section] objectForKey:@"MainImage"]];
imageHeight = CGImageGetHeight(theImage.CGImage);
imageWidth = CGImageGetWidth(theImage.CGImage);
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
photo = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, imageWidth, imageHeight)] autorelease];
photo.tag = PHOTO_TAG;
[cell addSubview:photo];
} else {
photo = (UIImageView *) [cell viewWithTag:PHOTO_TAG];
[photo setFrame:CGRectMake(0, 0, imageWidth, imageHeight)];
}
photo.image = theImage;
return cell;
}