2012-01-30 2 views
0

Я пытаюсь создать свой собственный пользовательский UIView для заголовка сгруппированного UITableView. Это код, который я играю до сих пор:Настройка UIView для метода делегата tableView

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    Target *aTarget = [targetDictionary objectForKey:[NSNumber numberWithInteger:section]]; 
    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, self.TargetTableView.frame.size.width, 20)]; 
    headerLabel.text = [NSString stringWithFormat:@"%@", aTarget.condition]; 
    headerLabel.textColor = [UIColor whiteColor]; 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.TargetTableView.frame.size.width, 200)]; 
    headerView.backgroundColor = [UIColor orangeColor]; 
// [headerView addSubview:headerLabel]; 

    return [headerView autorelease]; 
} 

Пара вопросов. Для моего headerView я хотел, чтобы высота была 40, но она выглядела настолько маленькой. Затем я изменил его на 60, и я увидел, что это не изменилось вообще в моем UITableView (я представляю эти данные в popover, который, как я думаю, не имеет значения). Поэтому я сделал высоту 200, чтобы увидеть, изменится ли она, а оранжевый вид у меня крошечный. Наверное, это будет только размер строки состояния.

Далее У меня есть UILabel. Я хочу, чтобы это было где-то в моем UIView. Когда я показываю это, это даже не в моем UIView. Это на вершине моего первого ряда моего UITableView. Когда я инициализирую его с помощью CGRectMake(), он устанавливает его в координатах родительского представления или что-то, что его отключает? Я пытался создать его, где бы хотел разместить его, как только я добавлю его в свой заголовок.

Наконец, если я хочу добавить простой градиент фона в мой tableView, я просто устанавливаю UITableView.backgroundColor = [UIColor clearColor] и устанавливаю backgroundView в градиент? Потому что это тоже не работает? Я вижу только цвета по умолчанию сгруппированного tableView. Благодарю.

+0

Возможно, вам нужно разбить это на отдельные вопросы. Во-первых, вы внедрили 'tableView: heightForHeaderInSection:'? – jrturton

ответ

0

Ваша проблема с высотой заголовка может быть решена, если вы добавите высоту в назначенный метод tableview tableView:heightForHeaderInSection:.

Что касается цвета, я думаю, вы должны установить цвет фона ячеек на clearColor, а затем вы сможете получить желаемый эффект.

Что касается UILabel, лучший способ его центрирования - сделать его той же шириной и высотой, что и заголовок, и установить его textAlignment на UITextAlignmentCenter.

Смежные вопросы