y位置在向另一个UIView添加UIView时不正确

y位置在向另一个UIView添加UIView时不正确

问题描述:

我已经使用以下代码向视图添加了两个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

如果你想在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]; 

感谢

拣出器不能是在你的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)是左上角,而不是左下角。 当你说-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比低所以拾取器比表格更高