2009-05-28 4 views
1

J'ajoute par programmation deux UIPickerViews personnalisées à une autre vue (MainView). Ils fonctionnent très bien mais ils ne sont pas visibles jusqu'à ce qu'un événement tactile se produise dans n'importe quelle partie de la vue principale. J'ai vérifié les références de classe pour UIPickerView et UIView mais n'ai rien trouvé qui réussit à "actualiser" la vue, à moins que je manque quelque chose d'évident?UIPickerView n'apparaît pas jusqu'à ce que le contact se produise

Voici ma méthode drawRect dans MainView.m. J'ai essayé de faire la même chose dans viewDidLoad mais sans succès. Est-ce que les rotations/transformations personnalisées ont quelque chose à voir avec ça?

- (void)drawRect:(CGRect)rect { 
    CGRect pickerFrame = CGRectMake(50, -32, 30, 180); 
    m_picker1 = [[UIPickerView alloc] initWithFrame:pickerFrame]; 
    m_picker1.delegate = self; 
    m_picker1.tag = k_ptag1; 
    m_picker1.showsSelectionIndicator =YES; 
    m_picker1.backgroundColor = [UIColor clearColor]; 
    CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2); 
    rotate = CGAffineTransformScale(rotate, 0.075, 0.85); 
    [m_picker1 setTransform:rotate]; 
    [self addSubview:m_picker1]; 

    pickerFrame = CGRectMake(50, 67, 30, 180); 
    m_picker2 = [[UIPickerView alloc] initWithFrame:pickerFrame]; 
    m_picker2.delegate = self; 
    m_picker2.tag = k_ptag2; 
    m_picker2.showsSelectionIndicator =YES; 
    m_picker2.backgroundColor = [UIColor clearColor]; 
    rotate = CGAffineTransformMakeRotation(3.14/2); 
    rotate = CGAffineTransformScale(rotate, 0.075, 0.85); 
    [m_picker2 setTransform:rotate]; 
    [self addSubview:m_picker2]; 
} 

Répondre

2

Vous ajoutez des sous-vues dans le contrôleur d'une vue, pas la vue elle-même. Je suggère de vous familiariser avec le modèle de conception MVC. DrawRect est uniquement supposé être utilisé pour le dessin même de la vue, et non pour les sous-vues.

+0

Merci, j'ai transféré tous les éléments appropriés dans un UIViewController et les sélecteurs apparaissent maintenant correctement. – moigno

Questions connexes