0
我的UIDatePicker的一部分從屏幕底部延伸出來,即使我認爲我正確定位它。有人能告訴我我做錯了什麼嗎?我已經通過了以下幾行,並且無法弄清楚我出錯的地方。我試圖避免明確指定我的UIDatePicker框架的座標。我在這裏包含了我的視圖控制器中的相關代碼:定位UIDatePicker
我的UIDatePicker的一部分從屏幕底部延伸出來,即使我認爲我正確定位它。有人能告訴我我做錯了什麼嗎?我已經通過了以下幾行,並且無法弄清楚我出錯的地方。我試圖避免明確指定我的UIDatePicker框架的座標。我在這裏包含了我的視圖控制器中的相關代碼:定位UIDatePicker
有幾個問題。
既然你要選擇器視圖相對於self.view
放置於您想screenRect
是基於self.view.bounds
,不self.view.frame
。
另外,從來不打電話sizeThatFits:
。改爲撥打sizeToFit
。這在文檔中針對這兩種方法之一進行了說明。但這不是必要的。選擇器視圖將自動成爲正確的大小。
您很可能希望選取器視圖填充視圖的寬度(至少在iPhone/iPod touch上)。所以,你的pickerRect
應該是:
CGSize pickerSize = self.timePicker.bounds.size;
CGRect pickerRect = CGRectMake(0,
screenRect.size.height - pickerSize.height,
screenRect.size.width,
pickerSize.height);
的最後一步是設置autoresizing
掩碼選擇器。既然你想讓選擇器固定在視圖的底部,你應該設置一個靈活的頂部邊距。而且,既然你想它的視圖寬度設置爲靈活的寬度:
self.timePicker.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
無論我使用'screenRect.size.width'或'pickerSize.width',它是否有區別? –
當然可以。如果你想讓選擇器填充視圖的寬度,那麼你必須使用'screenRect.size.width'。如果您希望選取器具有與視圖寬度不同的其他固定寬度,請僅使用'pickerSize.width'。 – rmaddy
但是,當我調用'sizeToFit'時,UITimePicker的寬度不應與當前視圖邊界的寬度相同嗎?我意識到主要的錯誤是我使用視圖框而不是邊界,但我只想確保我正確地做了其他所有事情。 –