0

我正在向MainComponentView用户控制器添加自定义视图 ( )。现在,MainComponentView我还添加了一个自定义视图 ( FirstPartView) 并且FirstPartView' 的高度应该小于MainComponentView' 的高度。我的问题是,当我给的高度MainComponentView小于FirstPartView高度时,它仍然向我展示FirstPartView.

// MainComponentView
self.aComponent = [[MainComponentView alloc] initWithFrame:CGRectMake(212, 0, 600, 550)
                                             withStartDate:startDate
                                                   endDate:endDate];
[self.view addSubview:self.aComponent];

并将自定义视图添加到MainComponentView

self.aFirPartView = [[FirPartView alloc] initWithFrame:CGRectMake(0, self.frame.origin.y, self.frame.size.width, HEIGHT_OF_COMPONENT1) withStartDate:startDate endDate:endDate]; 
[self addSubview:self.aFirPartView];`
4

2 回答 2

0

子视图坐标是相对于父视图的,而不是相对于窗口的,所以当你这样做时:

self.aFirPartView = [[FirPartView alloc] initWithFrame:CGRectMake(0, self.frame.origin.y, self.frame.size.width, HEIGHT_OF_COMPONENT1) withStartDate:startDate endDate:endDate]; 
[self addSubview:self.aFirPartView];`

您创建的视图向下偏移了距MainComponentView屏幕顶部的距离。

尝试使用此帧值:

CGRectMake(0, 0, self.bounds.size.width, HEIGHT_OF_COMPONENT1)

这会将子视图定位在您的左上角MainComponentView,具有指定的宽度和高度。

于 2013-07-16T10:08:09.470 回答
0

尝试:

self.aComponent.clipsToBounds = YES;

告诉视图它不应该绘制其框架之外的任何子视图的任何部分。

于 2013-07-16T10:06:58.133 回答