Iphone 如何在ios6中定位UILabel?

Iphone 如何在ios6中定位UILabel?,iphone,ios,Iphone,Ios,我想这两个标签,大的和小的都在屏幕中央。 改变坐标似乎对它们的位置没有影响。为什么? 理想情况下,我希望它们的大小相同,不重叠,一个比另一个低,这样它们几乎可以覆盖整个屏幕 我认为labelframe使用的是格式-开始坐标,大小。 我的原产地在哪里?在屏幕的左上角吗? 我可以用xcode翻译吗 #import "ViewController.h" @interface ViewController () @property (nonatomic, strong) UILabel *label;

我想这两个标签,大的和小的都在屏幕中央。 改变坐标似乎对它们的位置没有影响。为什么?

理想情况下,我希望它们的大小相同,不重叠,一个比另一个低,这样它们几乎可以覆盖整个屏幕

我认为labelframe使用的是格式-开始坐标,大小。 我的原产地在哪里?在屏幕的左上角吗? 我可以用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

您正在覆盖调用时设置的原点

self.label.center = self.view.center

原点0,0是屏幕superview的左上角。如果希望标签位于屏幕的中心,一个在另一个上,可以执行以下操作:

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];
更新:根据你的评论,两行一列比较容易。只需将框架设置为全宽和半高:

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];

原点0,0相对于子视图的父视图,而不是屏幕。屏幕的中心和self.view的中心可能不在同一位置。我基本上希望这两个标签像一个2行1列的矩阵,一行在另一行的下方,这样它们就覆盖了整个屏幕用户494461我编辑我的答案就是为了这样做@rmaddy我还纠正了起源的事情。谢谢