我创建了一个自定义的UITableViewCell,我从xib加载,所以现在文本可能是动态的,所以我希望UILabel的高度存在于Custom UITableViewCell动态,
自定义UITableViewCell的代码是
#import <UIKit/UIKit.h>
@interface NarrativeCell : UITableViewCell
@property(nonatomic,retain) IBOutlet UILabel *noteTitle;
@property(nonatomic,retain) IBOutlet UILabel *noteDate;
@property(nonatomic,retain) IBOutlet UILabel *noteDesc;
@property(nonatomic,retain) IBOutlet UIImageView *sideImage;
@property(nonatomic,retain) IBOutlet UIButton *imageButton;
@property(nonatomic,retain) IBOutlet UIButton *audioStartButton;
@property(nonatomic,retain) IBOutlet UIButton *audioStopButton;
@end
这是代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"NarrativeCell";
NarrativeCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil){
NSLog(@"New Cell Made");
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"NarrativeCell" owner:nil options:nil];
for(id currentObject in topLevelObjects)
{
if([currentObject isKindOfClass:[NarrativeCell class]])
{
cell = (NarrativeCell *)currentObject;
break;
}
}
}
Narratives *n=(Narratives *)[tableArray objectAtIndex:indexPath.row];
CGRect newFrame = cell.noteDesc.frame;
NSLog(@"old %f",newFrame.size.height);
newFrame.size.height = expectedLabelSize.height;
//yourLabel.frame = newFrame;
NSLog(@"new %f",newFrame.size.height);
newFrame.size.height = expectedLabelSize.height;
[cell.noteDesc setFrame:newFrame];
[cell.noteDesc setNumberOfLines:0];
[cell.noteDesc setText:n.cfcnl_note];
return cell;
}
但不幸的是我无法调整
的高度 [cell.noteDesc setFrame:newFrame];
我认为因为它是从nib文件加载的,请帮助我如何动态更改UILabel当前自定义UITableViewCell(在nib中创建)的高度。
/////////修改
在这里看到旧的输出 老21.000000 新42.000000
答案 0 :(得分:0)
看起来您的单元格小于文本所需的单元格。因此,您需要使用heightForRowAtIndexpath方法找到正确的单元格高度。如果你在单元格内有足够的空间用于调整大小,你应该向我们展示你的XIB子视图层次结构,看起来你做错了(一些超级视图剪辑来限制你的标签)。
P.S。无论如何,这不是因为您正在使用界面构建器。