Я разрабатываю приложение для iPad, которое позволяет пользователю выбирать «виджеты» для отображения на экране. Экран разделен на две колонки, виджеты будут размещены в левой или правой колонке. Каждый виджет является контроллером представления со статической фиксированной шириной, но переменной высотой в зависимости от содержимого виджета. Я ищу способ разместить виджеты на экране, чтобы они автоматически помещались в следующее логическое место - что-то похожее на то, что делал бы менеджер по компоновке в Java.
Я создал метод addWidget, который отслеживает высоту всех виджетов в каждом столбце. Виджеты затем добавляются в столбец с наименьшей высотой. Это работает , но я ищу, возможно, более элегантный способ сделать это или идеи по улучшению текущего решения.
- (void) addWidget:(UIViewController *)controller {
if(leftHeight <= rightHeight) {
controller.view.frame = CGRectMake(20.0, leftHeight, controller.view.bounds.size.width, controller.view.bounds.size.height);
leftHeight = leftHeight + controller.view.bounds.size.height + 20;
}
else {
controller.view.frame = CGRectMake(self.view.bounds.size.width-controller.view.bounds.size.width-20, rightHeight, controller.view.bounds.size.width, controller.view.bounds.size.height);
rightHeight = rightHeight + controller.view.bounds.size.height + 20;
}
[scrollView addSubview:controller.view];
}
Спасибо