iPhone: Как добавить UILabel поверх UITableView? - PullRequest
1 голос
/ 27 декабря 2011

В моем приложении Universal IOS4 у меня есть UITableview в моей xib, и я управляю им с помощью моего UITableViewController.Как вы знаете, табличное представление по умолчанию покрывает всю область в окне слева от панели навигации вверху и панели инструментов внизу.

Я хочу добавить еще один UIComponent (вероятно, большой UILabel) прямо под навигациейпанель и поместите прокручиваемое табличное представление прямо под этим UILabel, так что UIlabel не прокручиваемый, а только таблица

Как это можно сделать и контролировать?

Спасибо

Ответы [ 4 ]

3 голосов
/ 27 декабря 2011

Не берите в голову: я думаю, что это будет прокручиваться с таблицей.

Вы можете установить заголовок раздела в представлении ниже.Это может работать, если у вас есть только один раздел.Лучшим решением было бы перейти на UIViewController.

Программно добавить заголовок в таблицу

UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0,0,320,30)] autorelease];
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,50,30)] autorelease];
label.text = "Hello";
[view addSubview:label];
self.tableView.tableHeaderView = view;
1 голос
/ 28 декабря 2011

Я бы предложил вообще не использовать UITableViewCOntroller.Если вы используете UITableVIewCOntroller, чтобы упростить использование делегатов и источников данных, вам придется столкнуться с такими проблемами настройки.

У вас будут следующие проблемы, если вы используете UITableViewController:

  1. не может установить фон для пользовательского UIImage.Вы можете установить только свойство BG UITableView.Если вы используете Custom VC и добавляете к нему UITableView.Вы можете полностью настроить то, что нужно оставить поверх View, widtt и высоты вашего табличного представления.

  2. Вы не можете иметь статическое представление заголовка в вашем представлении вообще.Потому что, если вы используете UITableVC, у вас может быть только заголовок по умолчанию, который вы можете создать, используя методы источника данных табличного представления.Но если вы используете настроенный VC и добавляете TableView к нему, вы можете добавить свой собственный настраиваемый заголовок или элементы управления в качестве заголовка.

единственное преимущество, которое вы получите, если вы используете UITableViewController, эточто если у вас есть UITextFields в вашем табличном представлении, UITableViewCOntroller будет автоматически прокручивать скрытое текстовое поле над клавиатурой, если вы начнете редактировать его.вид к окну получит события вращения

http://developer.apple.com/library/ios/#qa/qa1688/_index.html

1 голос
/ 27 декабря 2011

Один из способов - добавить UIWindow.Но убедитесь, что вы правильно обрабатываете его при навигации по представлениям ... Вот способ ...

UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) 
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
[[[window subviews] objectAtIndex:0] addSubview:myView];

Создайте свой экземпляр UILabel (myView) и добавьте его как подпредставление в UIWindow ...

1 голос
/ 27 декабря 2011

Одна простая идея состоит в том, чтобы иметь другой UIViewController (давайте назовем это a_viewController) и установить табличное представление (назовем его a_tableView) и метку (так же, a_label) в качестве его подпредставлений.

[a_viewController.view addSubview:a_tableView]
[a_viewController.view addSubview:a_label];

Заголовок TableView может не работать, если вы хотите, чтобы метка оставалась при прокрутке.

Но если у вас в таблице только один раздел, заголовок раздела может стать удобным вариантом.

Могу ли я сделать положение tableHeaderView таблицы фиксированным при прокрутке?

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