2012-02-18 65 views
2

我知道我可以使用委託方法– pickerView:widthForComponent:設置UIPickerView的組件寬度,但是如果我有2個組件,並且只想更改第一個組件的寬度並將第二個組件的寬度保留爲默認值(iOS SDK會找出的東西)。我將如何實現這一目標?iOS - 更改UIPickerView組件寬度

回答

4

除非你使用像這樣的if語句和手動設置的默認值(找出它是什麼後):

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component { 
    if (component == 0) 
     return customWidth; 
    return defaultValue; 
} 

我不知道,你可以設定值只有部分組件,但讓其他人默認接管。

+2

這正是我所要求的,我可以如何返回組件的默認值,我不想更改默認寬度。 – 2012-02-24 13:13:39

6

PickerView根據拾取器中有多少組件來劃分組件。所以組件沒有默認值。但你仍然可以試試這個。

爲此,請嘗試按百分比樣式設置組件寬度。

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 2 ; 
} 

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    if (component == 0) 
    { 
     return 10 ; 
    } 
    else 
    { 
     return 10 ; 
    } 
} 

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    if (component == 0) 
    { 
     return @"Apple" ; 
    } 
    else 
    { 
     return @"iPhone" ; 
    } 
} 

-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component 
{ 
    if (component == 0) 
    { 
     return (self.view.frame.size.width * 55)/100 ; 
    } 
    else 
    { 
     return (self.view.frame.size.width * 30)/100 ; 
    } 
} 

下面是截圖:

enter image description here

2

這是一個遲到的回答,但對於未來的讀者,顯然是沒有辦法返回一個「默認」的寬度。在你定義方法的那一刻,你必須明確地設置所有組件的寬度,而不僅僅是其中的一部分。