2013-03-29 62 views
1

有沒有辦法將UIPickerView中顯示的行數從5更改爲4?選擇器的高度在IB中似乎不可調,我無法找到任何委託方法來控制它。更改UIPickerView中顯示的行數

請注意,我詢問的是顯示的行數,而不是組件中的行數。

+0

要以編程方式選擇另一行我是正確的嗎? – Pratik

+0

不,我想在uipickerview中顯示4行而不是5。 –

回答

3

您可以使用以下方法UIPickerViewDelegate

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component 
{ 
    return 60.0f; 
} 

我不知道你需要得到四行顯示的確切高度的設置行的高度,在UIPickerview。可能只是不得不擺弄那個,直到你做對了!

+0

謝謝!我遇到的問題是我試圖設計一個使用圖像作爲行的比賽。我已經使用這種方法來匹配圖像的高度。問題是,我試圖減少整個選擇器組件的垂直高度,以便我顯示4行,每行在指定的高度。 –

0

如果你想設置的UIPickerView的高度,那麼你可以使用:

picketView.transform = CGAffineTransformMakeScale(1, 0.70); 

上面的代碼將縮放UIPickerView

+0

但是這不會改變顯示的行數,因爲行也會被轉換。 – rmaddy

+0

我已經給出了調整UIPIckerView高度的答案。 – Yashesh

+0

主要問題是有沒有辦法將UIPickerView的顯示行數從5改爲4? – rmaddy

0

蘋果公司並沒有給出直接的方法,它允許我們使用setFrame更改UIPickerView高度。

但有兩個辦法,變通才達到相同的:

希望這會對你有所幫助。

0

你不能用uipickerview高度弄亂很多,原因是一旦你改變了高度,你必須重新調整每一行的大小和每一行的字體,以便它們被清晰地分開顯示。 UiPickerview只有三個有效高度(162.0,180.0和216.0)。但是,您可以通過以下方式更改高度

CGAffineTransform t0 = CGAffineTransformMakeTranslation (0, mypickview.bounds.size.height/2); 
CGAffineTransform s0 = CGAffineTransformMakeScale  (1.0, 0.5); 
CGAffineTransform t1 = CGAffineTransformMakeTranslation (0, -mypickview.bounds.size.height/2); 
mypickview.transform = CGAffineTransformConcat   (t0, CGAffineTransformConcat(s0, t1)); 
+0

謝謝,我會試試看,看看這些高度是否與許多顯示的行相對應。 –