2013-07-29 105 views
0

我想顯示一些信息註釋在地圖上和地圖下方我想顯示一個非常簡單的自定義日期選擇器。無法定位從筆尖加載的自定義視圖

我在筆尖中創建了一個自定義視圖並將其與UIView的一個實例關聯。

該相同的類包含此函數從一個筆尖加載視圖實例。

+(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

自定義視圖的尺寸已設置爲320 x 40 i ñ文件。背景是透明的。

現在的問題是:

由於現場的高度是504,我的代碼應該已經

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

但是,當我實現這個,我只能看到地圖。即使(0,400),(0,420)也不起作用。我使用了試驗和錯誤並使用(0,375)。

視覺上我的目標似乎是完整的。但是我不知道爲什麼(0,375)在工作時不工作。

回答

1

這取決於'self.view'是哪個視圖。看起來這個視圖只是地圖(不包括搜索欄)。你爲什麼不設置

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

那麼你是不依賴於實際的視圖大小(這將在iPhone 4和5之間不同)。

順便說一句,viewDidAppear是一個奇怪的方法來添加欄,viewDidLoad是專門用於此目的。將其添加到viewDidLoad中,然後將其框架設置爲viewViewAppear

+0

謝謝,CGRectMake(0,self.view.size.height - 40,320,40)的作品!但是,如果我把dateDicker初始化代碼放在viewDidLoad中,它不起作用。我不知道爲什麼。 – Shuaib

+0

對不起,是的,在viewDidLoad視圖框架尚未正確設置。我已經更新了我的答案。 – fishinear

相關問題