versiones guia español descargar actualizar iphone xcode interface-builder uitoolbar

iphone - guia - ¿Hay alguna manera de cambiar la altura de una UIToolbar?



qgis manual (10)

Claro, simplemente establece su marco de manera diferente:

[myToolbar setFrame:CGRectMake(0, 50, 320, 35)];

Esto hará que tu barra de herramientas tenga 35 píxeles de alto. Por supuesto, esto requiere un IBOutlet o la creación de la UIToolbar programáticamente, pero eso es muy fácil de hacer.

Tengo una UIToolbar en Interface Builder y me he dado cuenta de que está bloqueada para tener 44px de alto. Por supuesto, me gustaría hacer esto más grande.

¿Apple permite el cambio de tamaño de este control? Si es así, ¿cómo lo hago?


Descubrí que si configuro el marco en el iPad, cuando se oculta / muestra la barra de herramientas se restablece a una altura de 44 píxeles. Terminé teniendo que anular UIToolbar y cambiar el método:

// return ''best'' size to fit given size. does not actually resize view. Default is return existing view size - (CGSize)sizeThatFits:(CGSize)size { CGSize result = [super sizeThatFits:size]; result.height = 55; return result; };

Esto corregiría ajustar la altura incluso con el hide / show.


En el constructor de interfaces, también existe la posibilidad de utilizar "Atributos de tiempo de ejecución definidos por el usuario".

Simplemente agregue una entrada con keypath configurado en "marco" de tipo "Rect" y establezca el valor que desea.


En iOS 6, con autolayout, el enfoque más simple es una subclase UIToolbar en la que sobrescribes instrinsicContentSize . Aquí hay un código de una de mis aplicaciones, donde la barra de herramientas es alta. Sus lados y el fondo están fijados a los lados y la parte inferior de la supervista, como de costumbre.

-(CGSize)intrinsicContentSize { return CGSizeMake(UIViewNoIntrinsicMetric, 85); }


No estoy seguro de cómo se quedaría esto con Apple, y por supuesto depende de cómo desee usar la barra de herramientas, pero puede agregar una UIView predeterminada y cambiar su clase en el inspector de propiedades a la barra de herramientas de la UIT. Esto le brinda transparencia y personalización (en este caso, altura) de forma gratuita, a expensas del diseño de los elementos del botón de la barra.


Para Xcode 7.1 iOS 9, en diseño automático, el tamaño está bloqueado en 44px. La opción de menú Xcode Editor> Pin> Altura no está allí, en su lugar, realice la siguiente acción:

En InterfaceBuilder, haga clic en el elemento de la barra de herramientas para seleccionarlo. Control + Arrastre hacia abajo en cualquier lugar de la barra de herramientas y suéltelo, aparecerá un menú emergente que muestra la opción "Altura" en la parte superior, selecciónelo.

Ahora tiene una restricción de altura para trabajar y ajustar según sea necesario.


Si eso no funciona en SDK 6, es posible resolver de la siguiente manera:

Seleccione el elemento de la barra de herramientas y elija Editor> Pin> Altura para crear una restricción. Vaya a la Escena del Controlador de Vista y seleccione la restricción de Altura creada (44), luego coloque el valor que desee.


Siempre que tenga una restricción de altura en la barra de herramientas, puede usar este pequeño fragmento que me ha ayudado a ajustar las alturas para las clases heredadas de UIView.

-(void)setHeightConstraintTo:(CGFloat)height forView:(UIView *)view{ NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstAttribute = %d", NSLayoutAttributeHeight]; NSArray *filteredArray = [view.constraints filteredArrayUsingPredicate:predicate]; if(filteredArray.count > 0){ NSLayoutConstraint *constraint = filteredArray.firstObject; constraint.constant = height; } }


Solución Swift:

myToolbar.frame = CGRect(x: myToolbar.frame.origin.x, y: myToolbar.frame.origin.y, width: myToolbar.frame.size.width, height: 20)

CGRectMake está obsoleto. Esto puede ser reemplazado con CGRect . Esto establecerá el alto de la barra de herramientas en 20. Lo mismo funciona para el control segmentado también.


También podría simplemente editar el archivo xib:

ábralo como código fuente y encuentre la entrada que define el marco para el UIToolbar, algo similar a

<string key="NSFrame">{{0,420}, {320,44}}</string>

y simplemente cambie el valor de 44 al tamaño que necesite.

De esta forma, la barra de herramientas será más alta, y en InterfaceBuilder verá el nuevo tamaño atenuado y no podrá cambiarlo, pero no necesita enchufes ni códigos.