2012-06-15 84 views
0

我想計算一個位置來在屏幕上放置標籤。我們的目標是,如果黃色的方形被定義爲將文本放在自定義位置的UIView中

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

這是發生了什麼:

這裏明顯的事情,是一個正確的偏移量。 瞭解文字的字體和大小,如何才能正確計算出它?

enter image description here

回答

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軸。這樣,視圖的左上角放置在正確的位置。

+0

不幸的是,這不起作用 – JAM

+0

哦,我剛剛看到你叫 - sizeToFit。現在更新我的答案。 –

+0

非常好。謝謝你,先生 – JAM

相關問題