Как динамически добавить UIView - PullRequest
0 голосов
/ 12 января 2012

Здравствуйте, я хочу иметь таблицу UILabel.Первый столбец - это имя элемента, а второй - значение этого элемента.Проблема в том, что я не знаю, сколько строк мне нужно, пока пользователь не войдет в систему. Я знаю, как добавить строки в таблицу в Android, однако это невозможно сделать с iPhone.Как бы я этого достиг?

View

Ответы [ 4 ]

3 голосов
/ 12 января 2012

Рассмотрите возможность использования UITableView с пользовательскими ячейками.

Преимущество заключается в том, что в зависимости от источника данных представление таблицы может автоматически обновляться при изменении ваших данных. Архитектура, управляемая событиями (т. Е. Таблица обновления, когда данные доступны / изменяются), соответствует объекту цели c.

Для примеров пользовательских ячеек: http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

В учебных пособиях по созданию UITableView на основе источника данных я бы указал на отличный курс по программированию в Stanford для iOS, доступный в iTunes U.

1 голос
/ 12 января 2012

Существует специальное представление для этих целей под названием UITableView.Прочитайте эту статью:

Руководство по программированию табличного представления для iOS

Справочник по классам UITableView

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

Вы можете сделать это двумя разными способами.

В первом вы можете создавать ярлыки программно. Метка (UILabel класс) наследуется от UIView. Так что, если у вас есть суперпредставление, вы можете добавить на него ярлыки в зависимости от имени пользователя. Вы должны позиционировать метки, используя свойство frame. Например:

UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 40, 300, 50)];
titlelabel.text = @"title";
[ySursuperview addSubview:titleLabel];
[titleLabel release];

// add labels here

Во втором случае вы можете использовать UITableView (который содержит представление заголовка для заголовка) и где каждый UITableViewCell содержит NameX и ValueX. Вы также можете использовать пользовательские UITableViewCell.

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

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

Вам необходимо реализовать протокол UITableViewDataSource. В этом случае один из методов протокола:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [myData count];
}

Вы можете просмотреть всю документацию по протоколу здесь:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html

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