如何将正确的框架设置为自定义视图?

时间:2013-07-16 09:49:44

标签: ios

我正在向用户控制器添加自定义视图(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];`

2 个答案:

答案 0 :(得分:0)

尝试:

self.aComponent.clipsToBounds = YES;

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

答案 1 :(得分: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的左上角,并指定宽度和高度。