0

我正在尝试计算在屏幕上放置标签的位置。目标是在第一个方块的右下角放置“单词”标签

如果淡黄色方块定义为

myView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 70, 70)];
[self.view addSubview:myView];
[myView setBackgroundColor:[UIColor colorWithHexString:@"FFFFEC"]];

使用它,我想在它的右下角放置一个标签

l1 = [[UILabel alloc] init];
[l1 setText:@"word"];
[l1 setFrame:CGRectMake(myView.frame.origin.x + myView.frame.size.width, 
                        myView.frame.origin.y + myView.frame.size.height,
                       700, 700)];
[l1 setFont:[UIFont fontWithName:@"Arial" size:10.0]];
[l1 setBackgroundColor:[UIColor colorWithHexString:@"CCFFFEC"]];
[l1 setTextAlignment:UITextAlignmentRight];
[l1 sizeToFit];

这就是发生的事情:

显然,这里的问题是正确的偏移量。知道文本的字体和大小,如何正确计算呢?

在此处输入图像描述

4

1 回答 1

1

UIView 的原点映射到左上角。您遇到的问题与您计算标签框架的方式有关。您需要在调用 sizeToFit 后计算框架,以确保在更改标签宽度和高度后将其放置在正确的位置。

您需要在致电后致电[l1 sizeToFit];

[l1 setFrame:CGRectMake((myView.frame.origin.x + myView.frame.size.width)-li.frame.size.width, 
                            (myView.frame.origin.y + myView.frame.size.height)-l1.frame.size.height,
                           l1.frame.size.width, l1.frame.size.height)];

你从父视图的宽度加上它的 x 原点减去标签的宽度,并在 y 轴上用高度做同样的事情。这样视图的左上角被放置在正确的位置。

于 2012-06-15T21:24:01.793 回答