2011-03-01 83 views
1

運行到一個問題,當我試圖和一個UILabel添加到自定義的UITableViewCell。出於某種原因,框架根本沒有受到尊重 - 當我嘗試設置標籤高度(通過CGRectMake)時,文本會垂直裁剪。換句話說,只有一半的文本正在顯示。添加一個UILabel到的UITableViewCell - 文本被裁剪垂直

當我玩的CGRectMake的框架高度也顯示了一些奇怪的行爲 - 有時更低的值將會使事情正確對齊。

我是否設置了錯誤的值?該框架是否屬於修改的錯誤屬性?

編輯代碼:

所有的
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { 
    // Initialization code 
    eventName = [[UILabel alloc] initWithFrame:CGRectZero]; 
    //eventName.backgroundColor = [UIColor blueColor]; 
    eventName.numberOfLines = 2; 
    eventName.minimumFontSize = 8.; 
    eventName.adjustsFontSizeToFitWidth = YES; 
    eventName.text = @"Event Name"; 
    [self.contentView addSubview:eventName]; 

    eventStartEndDate = [[UILabel alloc] initWithFrame:CGRectZero]; 
    eventStartEndDate.backgroundColor = [UIColor blueColor]; 
    eventStartEndDate.text = @"Event Start and End Dates"; 
    [self.contentView addSubview:eventStartEndDate]; 

    description = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 30.0, 300.0, 20.0)]; 
    [self.contentView addSubview:description]; 


} 
return self; 
} 

-(void)layoutSubviews 
{ 
[super layoutSubviews]; 

if (!self.editing) { 
    eventName.frame = CGRectMake(10.0, 10.0, 300.0, 20.0); 
    eventStartEndDate.frame = CGRectMake(10.0, 35.0, 300.0, 20.0);; 
} 

} 
+0

它是剪裁的UILabel,還是UITableViewCell?也就是說,您的標籤位於單元格底部並被裁剪,還是完全位於單元格中,但正在裁剪? – TomSwift 2011-03-01 17:21:54

+0

請發送一些代碼 – 2011-03-01 17:32:11

+0

發佈代碼讓我意識到 - 這是導致問題的描述。我將它添加到我已添加的日期字段的頂部,因此它看起來正在被剪輯。 – nazbot 2011-03-01 17:38:03

回答

0

首先,你應該更加註意內存管理。您需要撥打UILabels致電release。 原因是,爲什麼你的UILabels有時看起來是剪輯的,因爲你的其他標籤確實有一個白色的,不透明的背景。將backgroundColor屬性設置爲[UIColor clearColor]這個技巧。

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     eventName = [[UILabel alloc] initWithFrame:CGRectZero]; 
     //eventName.backgroundColor = [UIColor blueColor]; 
     eventName.numberOfLines = 2; 
     eventName.minimumFontSize = 8.; 
     eventName.adjustsFontSizeToFitWidth = YES; 
     eventName.text = @"Event Name"; 
     eventName.backgroundColor = [UIColor clearColor]; 
     [self.contentView addSubview:eventName]; 
     [eventName release]; 

     eventStartEndDate = [[UILabel alloc] initWithFrame:CGRectZero]; 
     eventStartEndDate.backgroundColor = [UIColor blueColor]; 
     eventStartEndDate.text = @"Event Start and End Dates"; 
     [self.contentView addSubview:eventStartEndDate]; 
     [eventStartEndDate release]; 

     description = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 30.0, 300.0, 20.0)]; 
     description.backgroundColor = [UIColor clearColor]; 
     [self.contentView addSubview:description]; 
     [description release]; 
    } 
    return self; 
} 
+0

是的,這不是生產代碼 - 我只是在測試東西。壞習慣,但它是一個副項目,所以嘿。 – nazbot 2011-06-07 16:02:06