无法定位从笔尖加载的自定义视图

时间:2013-07-29 09:36:34

标签: ios uiview nib

我想在地图上显示一些注释的信息,在地图下方我想显示一个非常简单的自定义日期选择器。

我在笔尖中创建了一个自定义视图,并将其与UIView的实例相关联。

这个类包含此函数以从nib加载视图实例。

+(id)loadCustomDatePicker
{
    CustomDatePicker *customDatePicker = [[[NSBundle mainBundle] loadNibNamed:@"CustomDatePicker" owner:nil options:nil] lastObject];

    if ([customDatePicker isKindOfClass:[CustomDatePicker class]])
        return customDatePicker;
    else
        return nil;
}

以下是界面构建器的截图。

enter image description here

在我的视图控制器的 viewDidAppear 方法中,我使用此代码加载自定义视图

CustomDatePicker *customDatePicker = [CustomDatePicker loadCustomDatePicker];

[self.view addSubview:customDatePicker];
[self.view bringSubviewToFront:customDatePicker];

customDatePicker.frame = CGRectMake(0, 375, 320, 40);

以下是模拟屏幕截图:

enter image description here

自定义视图的尺寸在nib文件中设置为320 x 40。背景是透明的。

这就是问题:

由于场景的高度为504,我的代码应该是

 customDatePicker.frame = CGRectMake(0, 464, 320, 40);

但是当我实现这个时,我只能看到地图。偶数(0,400),(0,420)不起作用。我使用了反复试验并使用了(0,375)。

从视觉上看,我的目标似乎已经完成了。但我不知道为什么(0,375)工作时它不起作用。

1 个答案:

答案 0 :(得分:1)

这取决于'self.view'是哪个视图。看起来该视图仅是地图(不包括搜索栏)。你为什么不设置

customDatePicker.frame = CGRectMake(0, self.view.size.height - 40, 320, 40)

那么你不依赖于视图的实际大小(无论如何,它将在iPhone 4和5之间有所不同)。

顺便说一句,viewDidAppear是一种添加条形的奇怪方法,viewDidLoad就是为了这个。在viewDidLoad中添加,然后在viewViewAppear中设置其框架。