Как сделать изображение в сгруппированной ячейке табличного представления шириной экрана? - PullRequest
1 голос
/ 30 августа 2009

У меня есть большие изображения, отображаемые в сгруппированном виде таблицы. Я хотел бы, чтобы изображения занимали всю ширину экрана. Мне удалось выполнить эту работу с помощью построителя интерфейса tableViewCell, но в попытке повысить производительность я сейчас пытаюсь сделать это программным путем.

Тем не менее, я не смог заставить изображение быть на одном уровне с левой стороной экрана. Похоже, что используется положение ячеек по умолчанию в сгруппированном табличном виде.

Мне удалось заставить его работать, используя простое представление таблицы, но затем якоря заголовков раздела в верхней части экрана, и мне нужно, чтобы они прокручивались.

Есть идеи, как это сделать программно? Вот мой оригинальный код ниже. Спасибо!

- (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 Ответ

1 голос
/ 05 сентября 2009

Я наконец-то заработал. Вот мой окончательный код.

#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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...