6

UILabelこのコードで描かれた が の中心にないのはなぜviewですか?

//create the view and make it gray
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor darkGrayColor];

//everything for label
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,42,21)];

//set text of label
NSString *welcomeMessage = [@"Welcome, " stringByAppendingString:@"username"];
welcomeMessage = [welcomeMessage stringByAppendingString:@"!"];
label.text = welcomeMessage;

//set color
label.backgroundColor = [UIColor darkGrayColor];
label.textColor = [UIColor whiteColor];

//properties
label.textAlignment = NSTextAlignmentCenter;
[label sizeToFit];

//add the components to the view
[view addSubview: label];
label.center = view.center;

//show the view
self.view = view;

行は、を の中心にlabel.center = view.center;移動する必要があります。ただし、代わりに、以下に示すように、の中心が の左隅にある場所に移動します。labelviewlabelview

スクリーンショット
(出典:gyazo.com

誰かが理由を知っていますか?

4

3 に答える 3

5

フレームでビューを初期化する必要があります。

UIView *view = [[UIView alloc] initWithFrame:self.view.frame];
于 2013-06-05T21:13:51.637 に答える
0

viewDidLoad の代わりに viewDiLayoutSubviews に配置すると、コードは正常に機能します。

于 2015-09-22T19:01:56.293 に答える