我正在向UIViewController添加UIDatepicker,這是UINavigationController的rootview,我使用此代碼將Datepicker放置在屏幕的底部。子視圖位置不正確
UIDatePicker *picker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 216, 320, 216)];
[self.view addSubview:picker];
這通常應該將拾取器準確地放置在屏幕的底部,但它是錯位的44p。導航欄正好是44p高度,所以我認爲這是問題,但我不知道爲什麼框架高度包含導航欄的高度,當它不像Subview時。
我知道一個簡單的方法是減去44,但我正在尋找一個沒有任何固定數字的解決方案。有沒有辦法實現它,有人可以解釋我爲什麼視圖包含導航欄的高度?
好的,這解決了問題,但我不知道爲什麼。 ;) – digga
如果你不希望它是半透明的,但仍然希望沒有幻數的位置,該怎麼辦?似乎是一種副作用解決方案... – bryanmac
@bryanmac - 如果您不想將半透明屬性設置爲YES,則需要將視圖控制器的視圖高度設置爲960(ipad即1004-44 portraite模式)。 iPhone也需要類似的計算。像這樣,您可以處理視圖的框架以達到要求。但是,可以肯定的是,半透明的財產是一個有效的解決方案,而不是設置視圖框架。 –