Настройка UIView для метода делегата tableView - PullRequest
0 голосов
/ 31 января 2012

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

- (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 (я представляю эти данные в виде поповера, который, я думаю, не должен иметь значения). Так что я сделал высоту 200, чтобы посмотреть, изменится ли она, и оранжевый вид у меня крошечный. Возможно, только такой большой, как строка состояния, если это так.

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

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

1 Ответ

0 голосов
/ 31 января 2012

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

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

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

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