iphone uipickerview font-size

iphone - ¿Cómo cambiar el tamaño de la fuente en UIPickerView?



font-size (8)

Para ajuste de fuente de filas UIPickerView

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UILabel* pickerLabel = (UILabel*)view; if (!pickerLabel) { pickerLabel = [[UILabel alloc] init]; pickerLabel.font = [UIFont fontWithName:@"SourceSansPro-Semibold" size:16]; pickerLabel.textAlignment=NSTextAlignmentCenter; } [pickerLabel setText:[self.data objectAtIndex:row]]; return pickerLabel; }

Tengo un UIPickerView. Esto tiene cerca de 200 elementos, cada elemento tiene textos largos, por lo tanto, quiero cambiar el tamaño del tamaño de letra de UIPickerView. ¿Cómo puedo cambiarlo? ¿Es posible? ¿Alguien puede ayudarme? Gracias !

Yuva.M


Actualice en Swift para iOS8, puede agregar esto a su delegado:

func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView { var pickerLabel = view as? UILabel; if (pickerLabel == nil) { pickerLabel = UILabel() pickerLabel?.font = UIFont(name: "Montserrat", size: 16) pickerLabel?.textAlignment = NSTextAlignment.Center } pickerLabel?.text = fetchLabelForRowNumber(row) return pickerLabel!; }


Prueba esto, debería ayudar:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ UILabel* tView = (UILabel*)view; if (!tView){ tView = [[UILabel alloc] init]; // Setup label properties - frame, font, colors etc ... //adjustsFontSizeToFitWidth property to YES tView.minimumFontSize = 8.; tView.adjustsFontSizeToFitWidth = YES; } // Fill the label text here ... return tView; } // altro modo completo sembrerebbe... - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UILabel *pickerLabel = (UILabel *)view; if (pickerLabel == nil) { CGRect frame = CGRectMake(0.0, 0.0, 80, 32); pickerLabel = [[[UILabel alloc] initWithFrame:frame] autorelease]; [pickerLabel setTextAlignment:UITextAlignmentLeft]; [pickerLabel setBackgroundColor:[UIColor clearColor]]; [pickerLabel setFont:[UIFont boldSystemFontOfSize:15]]; } [pickerLabel setText:[pickerDataArray objectAtIndex:row]]; return pickerLabel; }


pickerView:viewForRow:forComponent:reusingView: implementar pickerView:viewForRow:forComponent:reusingView: method en delegado del selector

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ UILabel* tView = (UILabel*)view; if (!tView){ tView = [[UILabel alloc] init]; // Setup label properties - frame, font, colors etc ... } // Fill the label text here ... return tView; }


Para Objective c

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ UILabel* pickerLabel = (UILabel*)view; if (!pickerLabel){ pickerLabel = [[UILabel alloc] init]; // Setup label properties - frame, font, colors etc [pickerLabel setFont:[UIFont fontWithName:LATO_REGULAR_FONT size:SIZE_SEMIBOLD_FONT]]; pickerLabel.textColor = primaryTextColor; pickerLabel.textAlignment = NSTextAlignmentCenter; } // Fill the label text here pickerLabel.text = self.dataSourceArray[row]; return pickerLabel; }

Para Swift 2.3

func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView{ var label = view as! UILabel! if label == nil { label = UILabel() } label.font = LATO_REGULAR_FONT_17 label.text = dataArray[row] as? String label.textAlignment = .Center return label }


Swift 3 | AUTOSHRINK

Establecer los adjustsFontSizeToFitWidth=true y minimumScaleFactor=0.5

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { var label: UILabel if let view = view as? UILabel { label = view } else { label = UILabel() } label.text = "My Picker Text" label.textAlignment = .center label.font = UIFont.boldSystemFont(ofSize: 20) label.adjustsFontSizeToFitWidth = true label.minimumScaleFactor = 0.5 return label }


Swift 4.x

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { var label = UILabel() if let v = view { label = v as! UILabel } label.font = UIFont (name: "Helvetica Neue", size: 10) label.text = dataArray[row] label.textAlignment = .center return label }


Swift 4: para actualizar la respuesta de @Alessandro Ornano y evitar el error de violación de Force_cast:

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { var label = UILabel() if let v = view as? UILabel { label = v } label.font = UIFont (name: "Helvetica Neue", size: 10) label.text = dataArray[row] label.textAlignment = .center return label }