2013-06-14 5 views
7

J'utilise XCode 4.6.1 et je développe pour iOS 6.Redimensionnement d'un bouton dans iOS par programmation

J'ai ajouté un bouton au storyboard. J'ai créé une sortie dans mon dossier de mise en œuvre ViewController.m:

// 
    // ViewController.m 
    // 

    #import "ViewController.h" 

    @interface ViewController() 

    @property (weak, nonatomic) IBOutlet UIButton *b1; 

    @end 

J'essaie de modifier les propriétés du bouton b1 comme suit (dans ce même fichier: ViewController.m):

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     // Do any additional setup after loading the view, typically from a nib. 

     self.b1.alpha = 0.5; 
     self.b1.frame = CGRectMake(0,0,123,412); 
    } 

Quand je lance le application dans le simulateur, le alpha du bouton est correctement défini sur 0.5. Cependant, la position et la taille du bouton ne changent pas.

J'ai essayé différentes façons de le réaliser. Cependant, rien ne semble fonctionner. Je voudrais savoir ce que je fais mal. Je suis assez nouveau à l'objectif C. Toute aide serait grandement appréciée.

+0

Essayez de définir le cadre dans viewDidLayoutSubviews au lieu de viewDidLoad. –

Répondre

18

Vous utilisez probablement autolayout:

enter image description here

Lorsque vous utilisez autolayout vous ne pouvez pas modifier manuellement vos cadres de sorties. Vous avez deux options: vous pouvez désactiver autolayout (alors votre code devrait fonctionner) ou créer des points de vente à vos contraintes et modifier ensuite les contraintes programme:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint; 

puis dans votre code:

self.widthConstraint.constant = 123; 

et ainsi de suite avec toutes les contraintes qui doivent être modifiées.

Questions connexes