我已使用以下代码向视图中添加了两个UIViews
。 self.view
是我在导航控制器中的视图。
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像素的宽度条。是什么原因?我不明白这个问题。
答案 0 :(得分: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];
由于
答案 1 :(得分:0)
选择器不能在tableView下,因为tableView使用
self.view.frame.size.height - self.datePicker.frame.size.height
as hight
而pickerview的y位置较小
self.view.frame.size.height - self.datePicker.frame.size.height -44
答案 2 :(得分:0)
(0, 0)
位于左上角,而不是左下角。
当您说-44
时,您指定的点数为44
以上。
假设self.view
150
像素高,self.datePicker
50
像素高。
当你说:
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.y
是150 - 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.height
是150 - 50 = 100
56
低于100
,因此选择器高于表格