Изменение размера кнопки в iOS программно

Я использую XCode 4.6.1 и разрабатываю для iOS 6.

я добавил кнопку в раскадровку. Я создал выход в моем файле реализации ViewController.m:

    //
    //  ViewController.m
    //

    #import "ViewController.h"

    @interface ViewController ()

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

    @end

Я пытаюсь изменить кнопку b1свойства следующим образом (в этом же файле: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);
    }

когда я запускаю приложение в симуляторе,alpha кнопки успешно установлено значение 0.5. Однако, положение и размер кнопки не изменение.

Я пробовал различные способы сделать это. Однако ничего не работает. Я хотел бы знать, что я делаю неправильно. Я довольно новичок в Objective C. любая помощь была бы очень признательна.

1 ответов


вы, вероятно, используете autolayout:

enter image description here

при использовании autolayout вы не можете вручную изменить рамки розеток. У вас есть два варианта: вы можете отключить автозапуск (тогда ваш код должен работать) или создать выходы для ваших ограничений, а затем программно изменить ограничения:

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

а потом в коде:

 self.widthConstraint.constant = 123;

и так далее со всеми ограничениями, которые должны быть изменены.