如何在分组的tableview单元格中创建屏幕宽度?

时间:2009-08-30 14:29:43

标签: iphone objective-c uitableview

我在分组的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;
}

1 个答案:

答案 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;
}