Я должен разделить ширину стола на 2, 3, 5, ... равные части. Цель состоит в том, чтобы заполнить ячейку таблицы 2, 3, 5, ... квадратными подпредставлениями одинакового размера. (Изображений)
Естественно, высота стола зависит от этого.
Вот так я определяю размер таблицы и делю ее на количество размещаемых изображений.
Метод numberOfPicsPerRow возвращает это целочисленное значение количества изображений, которые пользователь выбрал для отображения в каждой строке таблицы.
- (CGFloat) rowHeight{
fcAppAppDelegate *delegate = (fcAppAppDelegate *);
CGRect bounds = self.tableView.bounds;
//CGRect bounds = self.view.bounds; // Alternative that returns the same result.
float tableWidth;
if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] delegate].tabBarController.interfaceOrientation))
tableWidth = bounds.size.width;
else
tableWidth = bounds.size.height;
NSLog (@"tableWidth: %f", tableWidth);
return tableWidth / [MatrixPhotoListTVC noOfPicsPerRow];
}
Здесь я впервые устанавливаю высоту строки таблицы:
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.rowHeight = [self rowHeight];
}
Все отлично работает на iPhone. На iPad, однако, возвращается tableView.bounds или view.bounds (width = 320, heiht = 372).
Интересно, что значения верны, когда устройство поворачивается. (ширина = 768, высота = 960)
У кого-нибудь есть объяснение этому? Является ли viewDidLoad подходящим местом для определения размера таблицы?