0

大きい方と小さい方の 2 つのラベルがちょうど画面の中央に配置されていると思います。座標を変更しても、配置される場所には影響がないようです。なんで?

理想的には、画面のほぼ全体をカバーするように、同じサイズで重ならないようにし、上下に並べる必要があります。

ラベルフレームはフォーマットを使用していると思いました-開始座標、サイズ。私の出身地はどこですか?画面左上ですか?xcodeで翻訳できますか?

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong) UILabel *label;
@property (nonatomic, strong) UILabel *label1;

@end

@implementation ViewController

- (void)viewDidLoad{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    CGRect labelFrame = CGRectMake(-200.0f,0.0f, 200.0f, 200.0f);
    self.label = [[UILabel alloc] initWithFrame:labelFrame];
    //self.label.adjustsFontSizeToFitWidth = YES;
    self.label.text = @"One two three four five six seven eight nine.";
    self.label.font = [UIFont boldSystemFontOfSize:28.0f];
    self.label.numberOfLines  = 5;
    self.label.center = self.view.center;
    [self.view addSubview:self.label];

    CGRect labelFrame1 = CGRectMake(600.0f,600.0f, 100.0f, 100.0f);
    self.label1 = [[UILabel alloc] initWithFrame:labelFrame1];
    self.label1.text = @"One 1 two three four five six seven eight nine.";
    self.label1.font = [UIFont boldSystemFontOfSize:18.0f];
    self.label1.numberOfLines  = 0;
    self.label1.center = self.view.center;
    [self.view addSubview:self.label1];



}

@end
4

2 に答える 2

0

原点 0,0 は、画面のスーパービューの左上隅です。ラベルを画面の中央に重ねて配置したい場合は、次のようにします。

self.label = [[UILabel alloc] init];
// setup label text, font..
[self.label sizeToFit]; // automatically set the appropriate size
self.label.center = self.view.center;
[self.view addSubview:self.label];

self.label1 = [[UILabel alloc] init];
// setup label text, font..
[self.label sizeToFit]; // automatically set the appropriate size
self.label1.center = self.view.center; // set at center of screen
// just overwrite origin.y to set it below the previous label
self.label1.frame = (CGRect) { self.label1.frame.origin.x, self.label.frame.origin.x + self.label.frame.size.height, self.label1.frame.size };
[self.view addSubview:self.label1];

更新: コメントに基づいて、2 行、1 列にする方が簡単です。フレームを全幅、半分の高さに設定するだけです:

self.label = [[UILabel alloc] initWithFrame:CGrectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height / 2];
self.label1 = [[UILabel alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height / 2, self.view.frame.size.width, self.view.frame.size.height / 2];
于 2013-04-09T17:15:57.283 に答える
0

呼び出し時に設定したオリジンを上書きしています

self.label.center = self.view.center
于 2013-04-09T17:13:53.433 に答える