y位置在向另一个UIView添加UIView时不正确
问题描述:
我已经使用以下代码向视图添加了两个UIViews
。 self.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像素的宽度条。是什么原因?我不明白这个问题。
答
如果你想在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.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
比低所以拾取器比表格更高
您是否尝试过记录/调试帧,就像您引用多个视图的框架一样问题。作为视图的框架:视图的位置和大小,以及视图将填充的超级视图。 视图的Bound:视图内部视图的位置和大小。 – rishi 2012-01-10 16:00:12