2012-01-21 1 views
0

2 개의 레이블이 포함 된 사용자 지정 UITableViewCell을 만들었습니다. 하나는 고정 너비를 가져야하고 다른 하나는 공간이있는 한 오른쪽으로 확장해야합니다.initWithStyle의 UITableViewCell 너비 : reuseIdentifier :

나는이 같은 UILabels을 만드는 오전 :

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 
     codeLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 60, 20)]; 
     [self.contentView addSubview:codeLabel]; 
     [codeLabel release]; 

     nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(76, 4, self.frame.size.width - 100, 34)]; 
     [self.contentView addSubview:nameLabel]; 
     [nameLabel release]; 
    } 

    return self; 
} 

문제는 그 시점, self.frame.size.width에서 항상 320.0를 반환한다는 것입니다, 그래서 UILabels이 제대로 크기되지 않습니다. 이 문제를 어떻게 극복 할 수 있습니까?

+0

시도하십시오. self.contentview.frame.size..width – Shubhank

+0

이것은 cellForRowAtIndexPath가 테이블 뷰에 추가하지 않고 셀을 작성하기 때문에 어떤 너비를 갖게 될지 말할 수 없습니다. 나중에이 셀을 다시 사용할 때 셀 너비를 찾을 수 있습니다. 불행히도, 나는 창조 할 때 세포의 너비를 알아내는 법을 모른다. – anticyclope

답변

1

두 번째 레이블의 autoresizingMaskUIViewAutoresizingFlexibleWidth으로 설정하십시오.

귀하의 요구가 autoresizingMask보다 복잡하면 자신을 구현해야합니다. layoutSubviews.

관련 문제