¿Mejor forma de vistas de layout con posiciones relativas en iOS?

Tengo una pregunta sobre la interfaz de usuario en iOS, especialmente en iPad.

Mi aplicación muestra información del restaurante de un resultado de búsqueda. No todos los campos son necesarios, por lo que algunos campos están vacíos. Podrían ser numbers de teléfono, clasificaciones, menus y etc.

Entonces, básicamente, lo que me gustaría hacer es mostrar vistas como UILabel y UIButton en un formatting de layout, pero no quiero mostrar ninguna vista con una cadena vacía. Entonces, no debería haber ningún espacio vacío entre las vistas.

La forma en que lo hago es si un campo no está vacío, inicio su vista y luego muestro debajo de la vista mostrada anteriormente, manteniendo un logging de la altura actual, se debería mostrar una vista.

Aunque esto funciona, creo que la forma en que funciona parece tedioso. ¿Existe la mejor práctica para mostrar vistas con posiciones relativas?

Gracias 🙂

Una forma de hacerlo es usar UITableView y seguir lo que se dice en esta respuesta: Ajustar automáticamente la altura UITableViewCell depende de su contenido en Objective-C

He creado una biblioteca para resolver este problema: CSLinearLayoutView

Lo usas así:

 // create the linear layout view CSLinearLayoutView *linearLayoutView = [[[CSLinearLayoutView alloc] initWithFrame:self.view.bounds] autorelease]; linearLayoutView.orientation = CSLinearLayoutViewOrientationVertical; [self.view addSubview:linearLayoutView]; // create a layout item for the view you want to display and add it to the layout view CSLinearLayoutItem *item = [CSLinearLayoutItem layoutItemForView:someView]; item.padding = CSLinearLayoutMakePadding(5.0, 10.0, 5.0, 10.0); item.horizontalAlignment = CSLinearLayoutItemHorizontalAlignmentCenter; item.fillMode = CSLinearLayoutItemFillModeNormal; [linearLayoutView addItem:item]; // add more items