2011-12-27 4 views
1

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

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

Как я могу делать и контролировать это?

Благодаря

+0

звучит, как вы хотите заголовок настроенной Tableview. Я бы изучил ваши варианты заголовков и посмотрел, что вы придумали. –

+0

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

+0

@Bill Brasky может объяснить, что означает, создавая мой собственный взгляд? – Spring

ответ

1

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

У вас будет ниже проблем, если вы UITableViewController:

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

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

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

Я не хотел бы предложить вам что-нибудь добавить к UIWindow, так как только первый добавленному вид окна будет получать событие вращения

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

1

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

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

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

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

Can i make a table's tableHeaderView position fixed as I scroll?

3

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

Вы можете установить заголовок раздела на вид ниже. Это может работать, если у вас есть только один раздел. Лучшим решением будет переход на 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

один из способов, что вы можете добавить на UIWindow. Но убедитесь, что вы правильно обращаться с этим во время навигации с видом ... После путь ...

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

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

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