2011-01-21 72 views
2

我有這樣的問題: 如果我使用的UIDatePicker,一切順利: 我有這樣的代碼:移動一個UIPickerView

datePickerView.frame = CGRectMake(0, 264, 320, 216); 
datePickerView.bounds = CGRectMake(0, -108, 320, 216); 

和日期選擇是成功的一半在底部(像我想要(僅適用於測試))

,但如果我使用一個uIPickerView,我使用相同的代碼:

genderPickerView.frame = CGRectMake(0, 264, 320, 216); 
genderPickerView.bounds = CGRectMake(0, -108, 320, 216); 

但pickerview是在底部,像在日期選擇器底部的還不到一半... 有什麼問題? 在此先感謝!

回答

1

它是因爲你已經改變了視圖的繪圖範圍。我想,選擇器視圖之間爲什麼不同的答案是由於每個控件的實際實現 - 一個必須繪製邊界原點,而另一個必須繪製邊框原點。

通過將邊界的y原點設置爲-108,視圖的可繪製區域原點現在比實際視圖位置高出108個像素。一般來說,你永遠不想在邊界上設置原點,特別是當你不擁有控制時。只需使用幀位置:0,156,320,216,它們都應該表現相同。請參考UIView's frame, bounds, center, origin, when to use what?