Как поместить UITableView ниже UILabel с кодом - PullRequest
2 голосов
/ 24 февраля 2012

Я написал код с UILabel с названием метеостанции. Позже я добавил код для добавления UITableView с видом сетки, как объясняет этот сайт http://www.recursiveawesome.com/blog/2011/04/06/creating-a-grid-view-in-ios/

Проблема в том, что теперь табличное представление отображается на всех экранах, а метка не видна.

Как мне сделать так, чтобы элементы располагались в этом порядке?

  1. UILabel
  2. UITableView

Спасибо!

Ответы [ 3 ]

7 голосов
/ 24 февраля 2012

1 С пером:

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

2 Без кончика

Создайте / выделите / инициализируйте вашу метку и таблицу, а затем добавьте их в представление:

[self.view addSubview:myTableView];
[self.view addSubview:myLabel];

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

// the number 10 is used for padding purposes
CGSize labelWidth = CGSizeMake(self.view.frame.size.width-20, 1000.0f);
CGSize textSize = [myLable.text sizeWithFont:myLable.font constrainedToSize:labelWidth lineBreakMode:UILineBreakModeWordWrap];
myLable.frame = CGRectMake(10, 10, labelWidth.width, textSize.height);


myTableView.frame = CGRectMake(0, myLable.frame.origin.y+10, self.view.frame.size.width, self.view.frame.size.height - (myLable.frame.origin.y+10));

Обратите внимание, что вычисление кадров может быть выполнено МНОГИМИ способами.Также вам, вероятно, придется пересчитать кадры вручную для поворотов.

Надеюсь, это поможет Удачи!

3 голосов
/ 24 февраля 2012

В зависимости от ответа на мои вопросы в комментариях, есть несколько ответов.

  1. Если вы хотите, чтобы ярлык всегда был сверху независимо от того, прокручивается ли табличное представление, убедитесь, чтоиспользуя экземпляр UIViewController, затем создайте два ваших представления.Установите соответствующий кадр, а затем добавьте представление метки и представление таблицы в качестве подпредставлений к основному виду.
  2. Если вы хотите, чтобы метка прокручивалась, это еще проще.Ваш UIViewController может оставаться подклассом UITableViewController.UITableView имеет свойство с именем tableHeaderView.myTableView.tableHeaderView = labelView;
1 голос
/ 24 февраля 2012

Ты мог бы как Рэйчел сказал

[self.view addSubview:myTableView];
[self.view addSubview:myLabel];

или после размещения

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