2013-09-23 28 views
39

在iOS 7中使用Storyboard時使用UIDatePicker元素時,我遇到了一些奇怪現象。在Storyboard中,日期選擇器的固定高度爲162.但實際上,元素佔用的空間比這更大。因此,這iOS 7 UIDatePicker高度不一致?

Storyboard

變成這樣:

Simulator

所以我必須要低於它的一切下移,猜測和目測的日期選擇器多少空間實際使用。這是一個錯誤?難道我做錯了什麼?要清楚,日期選擇器是完全透明的 - 無法找到解決辦法。頂部的白色背景是主要的UIView,灰色背景是容器視圖中嵌入的UITableView的背景。

+0

如果添加「等高」的自動佈局約束到的UIDatePicker,然後將其刪除,的高度日期選擇器更改爲固定爲216px。 – AnsonL

回答

39

我可以確認在故事板中使用UI(Date)Picker的高度(162.0)與「現實」(216.0)的高度不同。因此,您必須將容器視圖的空間調整爲適合「真實」日期選取器高度,或嘗試使用自動佈局來解決該問題。

+1

你認爲這只是一個錯誤? – Andrew

+2

是的,我會這麼認爲。 –

+1

您是否嘗試過在控制器上設置edgesForExtendedLayout = UIRectEdgeNone? – dwery

20

我剛剛發現了一個有趣的技巧:將UIDatePicker放在一個專用視圖中,高度爲162點(從拾取器的頂部和底部向此新的超級視圖添加0點垂直約束)。這似乎具有強制選取器保持162點大小的效果。

您可以添加裁剪子視圖的選項,以確保UIDatePicker不會逃離新監獄。

編輯:一些更多的測試後,似乎只需添加的162點的高度限制爲UIDatePicker,它會保持其「IB大小」。而且,回答@安德魯的評論,在這裏是什麼樣子:

UIDatePicker constraint to 162 point in height

+0

這是不是切斷了車輪的底部?它看起來像是設計爲216px。 – Andrew

+0

不是,它似乎是專門爲這個高度重新繪製的。看我的編輯。 – MonsieurDart

+1

哇,情節變厚了!感謝編輯;這是有用的信息。 – Andrew

1

您可以通過簡單地給它的寬度和高度的限制更改寬度和高度。如果不這樣做,我發現UIDatePicker的行爲很奇怪。

0

在我的UIDatePicker對象上設置clipsToBounds屬性爲YES幫助了我。

datePicker.clipsToBounds = YES; 

對於廈門國際銀行的,你可以直接勾選爲剪輯子視圖的複選框: