Где вы устанавливаете высоту или рамку UITableView? AwakeFromNib? - PullRequest
0 голосов
/ 21 февраля 2012

В моем приложении есть табличное представление, которое я построил в NIB, где я установил высоту с помощью инспектора размера на 68.

Я также делаю следующее в своем коде.

- (void) viewDidAppear:(BOOL)animated
{
    self.tableView.frame = CGRectMake(0,0,320,68);
    self.tableView.scrollEnabled = NO;

}

- (void)viewDidUnload
{
    [super viewDidUnload];
}

- (void)awakeFromNib
{
    [self.tableView setBackgroundColor:[UIColor clearColor]];
    self.tableView.rowHeight = 68;
}

Когда я запускаю приложение на симуляторе или iPhone, оно выглядит нормально, так как стол имеет высоту всего 68 пикселей. Если я закрою приложение (перейду на главный экран) и снова открою его, таблица уже не будет иметь высоту всего 68 пикселей, а будет занимать весь экран.

Кажется, я не могу сделать так, чтобы он всегда оставался 68px?

Помимо моего вопроса выше, есть ли метод (awakeFromNib, ViewDidAppear и т. Д.), В котором вы должны всегда и только устанавливать размер или положение объектов?

Ответы [ 3 ]

1 голос
/ 21 февраля 2012

Используйте этот метод для установки высоты,

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 68;
}
0 голосов
/ 22 февраля 2012

Нашел собственное решение. Решение для Apple заключается в том, что если вы используете UITableView и другие подпредставления, то не используйте контроллер uitbalview, поскольку таблица всегда будет пытаться использовать весь экран. Решение состоит в том, чтобы использовать uiview в качестве основы с контроллером uiview, затем поместить uitableview в uiview и дать uiviewcontroller методы делегирования, необходимые для управления табличным представлением.

Так что просто запомните, если вы не хотите использовать uitableview во всю высоту, не используйте контроллер uitableview с menubar.

0 голосов
/ 21 февраля 2012

Поместите ваш код в viewWillApper, это может работать!

- (void)viewWillAppear:(BOOL)animated

{

[супер просмотрWillAppear: анимированный];

self.tableView.frame = CGRectMake(0,0,320,68);
self.tableView.scrollEnabled = NO;
[self.tableView setBackgroundColor:[UIColor clearColor]];
self.tableView.rowHeight = 68;

}

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