iOS: TableView + заголовок заголовка в разделе с изображением - PullRequest
0 голосов
/ 01 февраля 2012

Я впервые пытаюсь использовать TableView в iOS, и у меня возникает проблема.

У меня есть таблица с двумя разделами и двумя строками в каждом разделе.У меня есть ситуация, когда мне нужно добавить изображение над моим первым разделом моего табличного представления (что-то вроде добавления знака поверх TableView), я попытался создать / добавить headerView для первого раздела раздела и внедрить мое изображение вэто, но проблема в том, что изображение не позволяет показывать строку заголовка для этого раздела.Как вы думаете, мне нужно создать и добавить (addubview) другую строку в виде плитки с UILable и добавить ее в headerView, или есть какой-либо другой способ сделать это?Проблема существует, пока я показываю headerView для этого раздела, как только я его удаляю, появится заголовок раздела.

В настоящее время я делаю это в:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section    
{
    if (section == 0)
        return headerView;
    return nil;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return headerView.frame.size.height + self.rowHeight+28.0; //
    return 30.0;//for other title header section
}

имой headerView выделен так:

CGRect headerViewRect = CGRectMake(0.0,  10.0,  frame.size.width -50  , self.rowHeight+50.0);
headerView = [[UIView alloc] initWithFrame:headerViewRect];
headerView.backgroundColor = [UIColor clearColor];

UIImageView *titleImage = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyTitlePicture.png"]] autorelease];
CGRect imageViewRect = CGRectMake(0.0,  0.0,  frame.size.width -100  , self.rowHeight+28.0);
titleImage.frame = imageViewRect;
titleImage.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
[headerView addSubview:titleImage];

TIA, Kamran

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Метод tableView (viewForHeaderInSection) должен возвращать ваш headerView (UIVIew *).Этот код вернет представление заголовка для вашего раздела.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section    
{
if (section == 0){
    CGRect headerViewRect = CGRectMake(0.0,0.0,320,40);
    UIView* headerView = [[UIView alloc] initWithFrame:headerViewRect];
    headerView.backgroundColor = [UIColor clearColor];

    UIImageView *titleImage = [[[UIImageView alloc] initWithImage:
          [UIImage imageNamed:@"MyTitlePicture.png"]] autorelease];
    CGRect imageViewRect = CGRectMake(0.0,  0.0, 320 , 40);
    titleImage.frame = imageViewRect;
    titleImage.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
    [headerView addSubview:titleImage];

   //Then you can add a UILabel to your headerView
   return headerView;
}
return nil;
}
0 голосов
/ 24 февраля 2012

Вы заменяете заголовок по умолчанию, но не добавляете к нему.Вам нужно запрограммировать UILabel и добавить его в качестве подпредставления к вашему заголовку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...