Usted puede cambiar el ancho mediante un método delegado apropiada
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
switch(component) {
case 0: return 22;
case 1: return 44;
case 2: return 88;
default: return 22;
}
//NOT REACHED
return 22;
}
En cuanto a un tamaño de texto personalizado, puede utilizar el delegado para volver vistas personalizadas con cualquier texto de tamaño que desee:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *retval = (id)view;
if (!retval) {
retval= [[[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)] autorelease];
}
retval.text = @"Demo";
retval.font = [UIFont systemFontOfSize:22];
return retval;
}
Por supuesto, tendrá que modificar estos para tener los valores adecuados para su aplicación, pero debe llevarlo a donde necesita ir.
Un par de errores en su segundo bloque de código: \t - La UIView debe enviarse a (UILabel *). \t - A la línea de asignación de retiros le falta un paréntesis de apertura y necesita llamar a initWithFrame; de lo contrario, no se mostrará nada: es decir. \t retval = [[[UILabel alloc] initWithFrame: CGRectMake (0.0f, 0.0f, [pickerView rowSizeForComponent: component] .width, [pickerView rowSizeForComponent: component] .height)] liberación automática]; –
Gracias, haré los cambios apropiados, aunque no es exactamente lo que usted propone. Voy a buscar un ID, básicamente porque es más corto y no abandonas nada porque el valor de la expresión ya está escrito en una UIView. –
También quiero agregar esta línea a la respuesta en caso de que esté trabajando con una matriz para poblar el selector (lo más probable). En lugar de retval.text = @ "Demo", reemplace con retval.text = [messageArray objectAtIndex: row]; – Jazzmine