1

myButtonの寸法を簡単に印刷したいだけです。コードを確認してください:

@interface ViewController : UIViewController

@property (nonatomic, strong) IBOutlet UIButton *myButton;

および.mファイル:

@implementation ViewController

@synthesize myButton;

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

    CGRect f2 = self.myButton.bounds;
    printf("x: %f\n", f2.origin.x);


    CGSize f3 = self.myButton.frame.size;
    printf("x: %f\n", f3.height);
}

- (void)viewWillAppear:(BOOL)animated {
    CGRect f2 = self.myButton.bounds;
    printf("x: %f\n", f2.origin.x);


    CGSize f3 = self.myButton.bounds.size;
    printf("x: %f\n", f3.height);
}

これは私がコンソールで受け取ったものです:

x: 0.000000
x: 0.000000
x: 0.000000
x: 0.000000

どうすれば印刷できますか?

ここに画像の説明を入力してください

4

6 に答える 6

3

自動レイアウトの場合、 が呼び出されるまでフレームの計算を続けます。 inメソッドをviewWillAppearポストすると、希望するボタンの境界が得られます。NSLogviewDidAppear

于 2012-10-09T10:24:39.797 に答える
0

確認してください。.xibまたはストーリーボード(使用しているものは何でも)のアウトレットを参照してください。

于 2012-10-09T10:06:49.587 に答える
0

viewDidLoad の正しいコードは次のとおりです。

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect f2 = self.myButton.frame;
    NSLog("x origin: %f\n", f2.origin.x);
    NSLog("y origin: %f\n", f2.origin.y);
    NSLog("height: %f\n", f2.size.height);
    NSLog("width: %f\n", f2.size.width);
}
于 2012-10-09T10:15:13.543 に答える
0

これを試して -

myButton.frame.origin.x;
myButton.frame.origin.y;
myButton.frame.size.width;
myButton.frame.size.height;
于 2012-10-09T10:04:13.893 に答える
0

また、便利なメソッドを使用できることにも注意してください。

NSLog(@"self.myButton.bounds = %@", NSStringFromCGRect(self.myButton.bounds));
NSLog(@"self.myButton.frame = %@", NSStringFromCGRect(self.myButton.frame));

さまざまな文字列形式や NSLog ステートメントを大量に使用することなく、CGRect をすばやく簡単に出力するには

于 2012-10-09T10:45:15.757 に答える