사용자 정의 셀의 레이블이 겹치는 문제가 있습니다.사용자 정의 UITableView 셀의 UILabels 겹침
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
{
self.img = [[[UIImageView alloc] init] autorelease];
[self.contentView addSubview:self.img];
self.p = [[[UILabel alloc] init] autorelease];
[self.p setTextAlignment:UITextAlignmentCenter];
[self.p setFont:[UIFont fontWithName:@"Helvetica" size:10.0]];
[self.p setLineBreakMode:UILineBreakModeTailTruncation];
[self.p setNumberOfLines:1];
[self.p setTextColor:[UIColor whiteColor]];
[self.p setBackgroundColor:[UIColor redColor]];
[self.p setText:@"PREMIERA"];
[self.contentView addSubview:self.p];
self.g = [[[UILabel alloc] init] autorelease];
[self.g setTextAlignment:UITextAlignmentLeft];
[self.g setFont:[UIFont fontWithName:@"Helvetica-Bold" size:12.0]];
[self.g setLineBreakMode:UILineBreakModeTailTruncation];
[self.g setNumberOfLines:1];
[self.contentView addSubview:self.g];
self.t = [[[UILabel alloc] init] autorelease];
[self.t setTextAlignment:UITextAlignmentLeft];
[self.t setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14.0]];
[self.t setMinimumFontSize:12.0f];
[self.t setAdjustsFontSizeToFitWidth:YES];
[self.t setLineBreakMode:UILineBreakModeTailTruncation];
[self.t setNumberOfLines:1];
[self.contentView addSubview:self.t];
self.o = [[[UILabel alloc] init] autorelease];
[self.o setTextAlignment:UITextAlignmentLeft];
[self.o setFont:[UIFont fontWithName:@"Helvetica" size:12.0]];
[self.o setLineBreakMode:UILineBreakModeTailTruncation];
[self.o setNumberOfLines:1];
[self.contentView addSubview:self.o];
}
return self;
}
- (void)layoutSubviews
{
[super layoutSubviews];
self.img.frame = CGRectMake(0, 0, 40, 60);
self.p.frame = CGRectMake(0, 0, 0, 0);
self.g.frame = CGRectMake(0, 0, 0, 0);
self.t.frame = CGRectMake(0, 0, 0, 0);
self.o.frame = CGRectMake(0, 0, 0, 0);
CGSize pSize = CGSizeMake(0, 0);
CGSize gSize = CGSizeMake(0, 0);
CGSize tSize = [self.t.text sizeWithFont:self.t.font constrainedToSize:CGSizeMake(230, 16) lineBreakMode:self.t.lineBreakMode];
CGSize oSize = [self.o.text sizeWithFont:self.o.font constrainedToSize:CGSizeMake(230, 16) lineBreakMode:self.o.lineBreakMode];
if (self.jestPremiera)
{
pSize = [self.p.text sizeWithFont:self.p.font constrainedToSize:CGSizeMake(60, 16) lineBreakMode:self.p.lineBreakMode];
gSize = [self.g.text sizeWithFont:self.g.font constrainedToSize:CGSizeMake(175, 16) lineBreakMode:self.g.lineBreakMode];
self.p.frame = CGRectMake(50, 5, 60, pSize.height);
self.p.hidden = NO;
self.g.frame = CGRectMake(115, 5, 175, gSize.height);
}
else
{
gSize = [self.g.text sizeWithFont:self.g.font constrainedToSize:CGSizeMake(230, 16) lineBreakMode:self.g.lineBreakMode];
self.p.hidden = YES;
self.g.frame = CGRectMake(50, 5, 230, gSize.height);
}
self.t.frame = CGRectMake(50, 5 + gSize.height, 230, tSize.height);
self.o.frame = CGRectMake(50, 5 + gSize.height + tSize.height, 230, oSize.height);
}
보통이 작동하지만, 때때로 (단지의 3G 장치)는 다음과 같습니다 : http://imageshack.us/f/17/tvkino1.jpg/
사람은 그 이유가 무엇인지 말해 주시겠습니까 여기 이 세포에 대한 초기화 및 레이아웃 방법이 있습니다 행동, 그리고 그걸로 내가 뭘 할 수 있을까?