2010-05-18 8 views
0

J'ai un UIPickerView avec un nombre variable de composants à afficher. Dans son contoller j'ai ce -pickerView:withForComponent:Étendre le composant PickerViews en touchant

- (CGFloat)pickerView:(UIPickerView *)pv widthForComponent:(NSInteger)component { 
    CGFloat f; 
    if (component == 0) { 
     f = 30; 

    } else { 
     if ([componentsData count]>2) { 
      f = 260.0/([componentsData count]-1); 
     } else{ 
      f = 260.0; 
     } 
    } 
    return f; 
} 

cela fonctionne bien si je l'appelle [pickerView reloadAllComponents], mais comment pourrais-je prolonger une largeur de composants si elle est touchée (et bien sûr rétrécis tous les autres)?

Répondre

1

Pour ce faire, même si vos options de sélecteur sont tous les textes, vous devrez utiliser

pickerView:viewForRow:forComponent:reusingView: 

Vous essentiellement besoin de générer un tableau de UIViews pour vos options de sélecteur, et les conserver dans un tableau. Ensuite, lorsqu'une ligne est sélectionnée, développez directement UIView et parcourez le tableau, en contractant les autres en conséquence.