iphone - UISegmentedControl: alteración de altura en Interface Builder
objective-c interface-builder (7)
No estoy seguro en IB, pero siempre puede encontrar la celda en su código y ajustar mediante programación la altura de UISegmentedControl.
Estoy creando varios UITableViewCells
personalizados UITableViewCells
y arrastré un UISegmentedControl
a una de las celdas personalizadas.
Si bien el control segmentado me permite modificar su ancho, no puedo alterar su altura en el Interface Builder (esa propiedad aparece en gris en 44 en la sección de "tamaño" del inspector de propiedades).
Sé que un UISegmentedControl
puede crearse con una altura personalizada en el código y agregarse a un UITableViewCell. ¿Hay alguna manera de ajustar la altura del control segmentado en Interface Builder?
No, debe hacerse en código. Vea esta pregunta.
Para hacerlo dentro de Interface Builder, puede seleccionar el control y agregar el atributo de marco en "Atributos de tiempo de ejecución definidos por el usuario"
Podemos establecer autolayout y luego ajustar la altura, después de eso podemos desactivar autolayout. Por lo tanto, ayudará para otros entonces iOS 6.0.
Puede cambiarlo indirectamente al fijar la "Altura" en Interface Builder (seleccione el control de segmento y luego a través del menú, seleccione Editor -> Pin-> Height
).
Esto agregará una nueva restricción de Altura a la lista de restricciones para ese control que luego puede editar. Los cambios se reflejan directamente en InterfaceBuilder como se puede ver en la Captura de pantalla a continuación.
Quiero añadir a la respuesta de Kender.
Si usa el guión gráfico en lugar de XIB, deberá agregar:
<constraint firstAttribute="height" constant="10" id="9Wo-6S-8EM"/>
<constraint firstAttribute="width" constant="201" id="lw7-cq-3XN"/>
La identificación puede ser algo único, supongo. Tal vez escoja alguna identificación y modifique una letra?
Este es el código completo
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="RMR-XS-abw" userLabel="ngentot2">
<constraints>
<constraint firstAttribute="height" constant="10" id="9Wo-6S-8EM"/>
<constraint firstAttribute="width" constant="201" id="lw7-cq-3XN"/>
</constraints>
<segments>
<segment title="First"/>
<segment title="Second"/>
</segments>
</segmentedControl>
Agrego una etiqueta de usuario para que pueda encontrar las cosas fácilmente.
Nota: leer el storyboard es muy esclarecedor. Cambiar el archivo del guión gráfico es MUY peligroso.
También puede abrir el archivo xib
en cualquier editor de texto, como Dashcode o MacVim o TextEdit, es un XML. Luego encuentra tu elemento allí, en mi caso parecía:
<object class="IBUISegmentedControl" id="270020637">
[...]
<string key="NSFrame">{{20, 154}, {176, 44}}</string>
[...]
</object>
Luego, puede cambiar el 44
a la altura que desee; verá los cambios en IB.
Esto funciona para todos los elementos que no se pueden cambiar de altura en IB - UIPicker
también ...