2012-01-10 76 views
1

我已經使用以下代碼向視圖添加了兩個UIViewsself.view是我在導航控制器中的視圖。y位置在向另一個UIView添加UIView時不正確

CGRect rect = [self.view bounds]; 
CGRect pickerFrame = CGRectMake(0, self.view.frame.size.height - 
             self.datePicker.frame.size.height - 44, 
           self.datePicker.frame.size.width, 
           self.datePicker.frame.size.height); 
CGRect tableFrame = CGRectMake(0, 0, self.tView.frame.size.width, 
           self.view.frame.size.height - 
            self.datePicker.frame.size.height); 
[self.datePicker setFrame:pickerFrame]; 
[self.tView setFrame:tableFrame]; 

[self.view addSubview:self.tView]; 
[self.view addSubview:self.datePicker]; 

我料想,選擇器低於tableView,但那不是結果。結果是兩個對象之間有一個44像素的寬度條。是什麼原因?我不明白這個問題。

+1

您是否嘗試過記錄/調試幀,就像您引用多個視圖的框架一樣問題。作爲視圖的框架:視圖的位置和大小,以及視圖將填充的超級視圖。 視圖的Bound:視圖內部視圖的位置和大小。 – rishi 2012-01-10 16:00:12

回答

1

如果你想在tableview下面添加選擇器,那麼首先設置tableview的框架,然後相應地設置選擇器的Y位置。假設這是你的iPhone應用程序,您要添加一個表,然後一個pickerview那麼你的代碼會是這樣 -

CGRect tableFrame = CGRectMake(0, 0, self.tView.frame.size.width, (self.view.frame.size.height - self.datePicker.frame.size.height)); 

[self.tView setFrame:tableFrame]; 

,然後設置pickerview像框架 -

CGRect pickerFrame = CGRectMake(0, self.tView.frame.size.height+2, self.datePicker.frame.size.width, self.datePicker.frame.size.height); 
[self.datePicker setFrame:pickerFrame]; 

,然後這些對象添加到您的視圖

[self.view addSubview:self.tView]; 
[self.view addSubview:self.datePicker]; 

感謝

0

揀出器不能是在你的tableView,因爲使用的tableView

self.view.frame.size.height - self.datePicker.frame.size.height 

高達攝氏
而你pickerview y位置是小

self.view.frame.size.height - self.datePicker.frame.size.height -44 
0

(0, 0)是左上角,而不是左下角。 當你說-44你指定一個點44像素以上。

比方說self.view150像素高和self.datePicker50像素高。

當你說:

CGRect pickerFrame = CGRectMake(0, self.view.frame.size.height - 
             self.datePicker.frame.size.height - 44, 
           self.datePicker.frame.size.width, 
           self.datePicker.frame.size.height); 

pickerFrame.origin.y150 - 50 - 44 = 56

當你說:

CGRect tableFrame = CGRectMake(0, 0, self.tView.frame.size.width, 
           self.view.frame.size.height - 
            self.datePicker.frame.size.height); 

tableFrame.size.height150 - 50 = 100

56比低所以拾取器比表格更高