7

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にかなり慣れていません。どんな助けでも大歓迎です。

4

1 に答える 1

18

おそらく自動レイアウトを使用しています:

ここに画像の説明を入力

autolayout を使用する場合、アウトレット フレームを手動で変更することはできません。2 つのオプションがあります。自動レイアウトを無効にする (コードが機能するはずです) か、制約へのアウトレットを作成してからプログラムで制約を変更することができます。

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

そして、あなたのコードで:

 self.widthConstraint.constant = 123;

など、変更が必要なすべての制約があります。

于 2013-06-14T09:31:16.327 に答える