2013-02-11 24 views
1

的真實幀我有一個自定義UIView我在類中創建。然後我將它添加到我的屏幕上,我想知道它是CGRect。但它似乎什麼,我似乎無法得到這個特定UIView的大小。這裏是我的代碼:查找的UIView

CGRect labelFrame; 
     if (!tickerImage) { 
      labelFrame = CGRectMake(upperTextField.frame.origin.x + 8, upperTextField.frame.origin.y, 0, 0); 
     } else { 
      labelFrame = CGRectMake(upperTextField.frame.origin.x + 16, upperTextField.frame.origin.y, 0, 0); 
     } 

     SGNewLabel = [[SGAdressLabel alloc] initWithFrame:labelFrame]; 
     [labelsArray addObject:SGNewLabel]; 
     [self.view addSubview:SGNewLabel]; 

     [SGNewLabel addNewLabelWithText:labelText andTickerImage:tickerImage]; 

     UIView *lastLabel = [labelsArray lastObject]; 
     CGRect newTextFieldFrame = CGRectMake(lastLabel.frame.origin.x + lastLabel.frame.size.width, labelFrame.origin.y, 320, 30); 
     upperTextField.frame = newTextFieldFrame; 

正如你看到的,我設置了upperTextField基於幀的我的自定義SGNewLabel的框架這似乎是錯誤的,即使投入NSArray。我在labelFrame聲明結尾設置0, 0,因爲我不知道未來對象的大小,這裏是我的問題的根源。

我怎樣才能糾正它,讓我的UIView的大小合適?

編輯: 的NSLog我的觀點給了我這樣的:

NSLog(@"The rect of object is: %@", NSStringFromCGRect(self.frame)); 
2013-02-11 17:16:02.333 MyApp[2383:c07] The rect of object is: {{24, 55}, {0, 0}} 

UIView本身通常畫,我可以看到它的全尺寸。

+0

具有u試過'yourView.frame'? – rptwsthi 2013-02-11 13:12:41

+0

@rptwsthi這是我的'lastLabel.frame'正在做的,它給我'lastLabel'或'SGNewLabel' – 2013-02-11 13:14:16

+0

日誌說,你需要自定義視圖的框架 – rptwsthi 2013-02-11 13:18:33

回答

0

我應該用我的標籤的框架集在自己的類,然後我的代碼是這樣的:

SGNewLabel = [[SGAdressLabel alloc] init]; 
CGRect labelFrame; 
     if (!tickerImage) { 
      labelFrame = CGRectMake(upperTextField.frame.origin.x + 8, upperTextField.frame.origin.y, SGNewLabel.frame.size.width, SGNewLabel.frame.size.height); 
     } else { 
      labelFrame = CGRectMake(upperTextField.frame.origin.x + 16, upperTextField.frame.origin.y, SGNewLabel.frame.size.width, SGNewLabel.frame.size.height); 
     } 
SGNewLabel.frame = labelFrame;