2015-01-18 2 views
1

UIPickerView가 있으며 텍스트 줄 바꾸기를하고 싶습니다. 여기 UIPickerView에서 단어 줄 바꿈하는 방법

내 코드입니다 :

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 
{ 
    if (component == 0) { 
    UILabel *lView = (UILabel *)view; 

    if (!tView) { 
     tView = [[UILabel alloc] init]; 
     [tView setFont:[UIFont systemFontOfSize:15]]; 
     tView.numberOfLines = [categorie count]; 
    } 
    tView.text = [categorie objectAtIndex:row]; 
    return tView; 
    } 
    else { 
     UILabel *lView = (UILabel *)view; 

     if (!sView) { 
      sView = [[UILabel alloc] init]; 
      [sView setFont:[UIFont systemFontOfSize:15]]; 
      sView.numberOfLines = [subCat count]; 
     } 
     sView.text = [subCat objectAtIndex:row]; 
     return sView; 
    } 
} 

내가 sView.numberOfLines = 0을 설정하는 시도; (이것은 보통 UILabel을 단어 줄 바꿈으로 설정하거나 1 줄 이상을 사용하는 방법이지만 작동하지 않습니다).

+0

주제에서 벗어나지 만, 주제 : https://github.com/NYTimes/objective-c-style-guide#naming 더 자세한 변수 : D –

+0

모든 병들은 단지 배열 –

+0

입니다.이 코드 스 니펫이 어렵다는 것은 아닙니다. 이해해, 너는 내가 무엇을 고려해야하는지 귀하의 코드를 작성하는 모범 사례로 제안 된 ave. 장기간에 이런 일에 익숙해지면 도움이 될 것입니다. –

답변

0

subCat 배열이 두 개의 문자열 객체를 포함하는 것으로, 예를 들면의 영상을 보자, 내가 무엇을 코드에서 발생 설명하자

sView.text = [subCat componentsJoinedByString:@"\n"]; 
: "하나", "두 사람은"

// You try to reuse label for picker 
UILabel *sView = (UILabel *)view; 
if (!sView) { 
    // if this view doesn't exists, you create new label 
    sView = [[UILabel alloc] init]; 
    [sView setFont:[UIFont systemFontOfSize:15]]; 
    // And once set numberOfLines to value 2 in our case 
    sView.numberOfLines = [subCat count]; 
} 
// And here you set text to "one" or "two" value from array 
// I don't understand where you set multiline text value? 
sView.text = [subCat objectAtIndex:row]; 
return sView; 

는이 같은 뭔가가 필요

+0

디 구성 요소 바인딩 된 문자열 : @ "\ n", 그리고 그 결과는 다른 모든 요소에 대해 처음으로 복사되었습니다. 예를 들어 첫 번째가 "one"이라면 다른 모든 행에 대해 "one"을 보여줍니다. –

+0

'- (CGFloat) pickerView : (UIPickerView *) pickerView에서 반환하는 값 rowHeightForComponent : (NSInteger) component' 대리자 기능? 어쩌면 당신은 충분한 키가없고 너무 작아서 1 개 이상의 문자열을 표시 할 수 없습니까? –

+0

무슨 소리 야? 나는 대의원을 자기 자신으로 설정하고, 나는 높이를 정하지 않았다. –

관련 문제