2010-11-09 50 views
1

正如標題狀態,它是在所有可能的地方省略號(...)在一個UIPickerView「行」,而不是結束的beggining?iPhone Pickerview省略號在開始,而不是結束

我都嘗試返回的NSString和一個UIView:

pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 

我甚至嘗試包裹帶滾輪的觀點,試圖找到替代解決方案,我想要的東西,但似乎省略號在beggining仍然是最適合我的東西。

文本的末端是一個唯一的標識符,其中,作爲可beggining各種對象之間重複,這是爲什麼該文本的結尾是更重要提示。

這心不是什麼即時通訊做,但認爲例如與名稱和個人的社會安全號碼列表中,姓名可以重複,核潛艇不會。

我知道我可以只放置數在beggining,但這個程序是這樣乳寧各種平臺,與客戶真正想要的號碼留底,以保持一致性。

這甚至可能嗎?如果是這樣,我該怎麼做?

感謝名單,斯特凡諾。

答案代碼添加:在您UIPickerViewDelegate而不是-pickerView方法:titleForRow:forComponent:方法viewForRow:forComponent:reusingView

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row 
      forComponent:(NSInteger)component reusingView:(UIView *)view { 
    UILabel *retval = (id)view; 
    if (!retval) { 
     retval= [[[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)] autorelease]; 
    } 

    retval.text = [self.arrayWithData objectAtIndex:row]; 
    retval.lineBreakMode = UILineBreakModeHeadTruncation; 
    retval.backgroundColor = [UIColor clearColor]; 

    return retval; 
} 

回答

3

您可以通過實現-pickerView做到這一點。後者只是向UIPickerView返回一個字符串,在這一點上取決於選擇器視圖來確定如何顯示它。那時,你無法控制在哪裏顯示省略號。

相反,實現-pickerView:viewForRow:forComponent:reusingView:,返回一個UILabel,其lineBreakMode設置爲UILineBreakModeHeadTruncation。這將確保橢圓放在字符串的開頭。

+0

非常感謝,完美的工作。給我的問題添加了詳細的答案代碼給需要將來參考的人。 – blindstuff 2010-11-09 23:53:57