2013-06-14 9 views
7

Sto utilizzando XCode 4.6.1 e sviluppo per iOS 6.Ridimensionamento di un pulsante in iOS a livello di programmazione

Ho aggiunto un pulsante allo storyboard. Ho creato uno sbocco nel mio file di implementazione ViewController.m:

// 
    // ViewController.m 
    // 

    #import "ViewController.h" 

    @interface ViewController() 

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

    @end 

cerco di modificare le proprietà del pulsante b1 l' come segue (in questo stesso file: 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); 
    } 

Quando eseguo il app nel simulatore, alpha del pulsante è impostato correttamente su 0.5. Tuttavia, la posizione e le dimensioni del pulsante non cambiano.

Ho provato vari modi per farlo accadere. Tuttavia, niente sembra funzionare. Mi piacerebbe sapere cosa sto sbagliando. Sono abbastanza nuovo per l'obiettivo C. Qualsiasi aiuto sarebbe molto apprezzato.

+0

provare a impostare il frame in viewDidLayoutSubviews anziché viewDidLoad. –

risposta

18

Probabilmente si sta utilizzando autolayout:

enter image description here

Quando si utilizza il layout automatico non è possibile modificare manualmente le prese fotogrammi. Hai due opzioni: è possibile disabilitare layout automatico (allora il codice dovrebbe funzionare), o creare punti vendita per i vostri vincoli e quindi modificare i vincoli di programmazione:

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

e poi nel codice:

self.widthConstraint.constant = 123; 

e così via con tutti i vincoli che devono essere modificati.

Problemi correlati