Ios 当以编程方式添加内容时,如何增加表格单元格高度?
我正在开发一个应用程序。我有一些来自服务器的数据 现在我不知道行的数据计数。我只知道字段的名称 我想在Ios 当以编程方式添加内容时,如何增加表格单元格高度?,ios,objective-c,xcode,uitableview,autolayout,Ios,Objective C,Xcode,Uitableview,Autolayout,我正在开发一个应用程序。我有一些来自服务器的数据 现在我不知道行的数据计数。我只知道字段的名称 我想在UITableViewCell中显示这些数据 我有一个自定义的表格单元格。我在里面取了一个ContentView。 我设置了以下约束: - Leading - Trailing - Top - Bottom 在我的ViewController的DidLoad方法中,我有以下代码: UINib *nib = [UINib nibWithNibN
UITableViewCell
中显示这些数据
我有一个自定义的表格单元格
。我在里面取了一个ContentView
。
我设置了以下约束:
- Leading
- Trailing
- Top
- Bottom
在我的ViewController的DidLoad方法中,我有以下代码:
UINib *nib = [UINib nibWithNibName:cellName bundle:nil];
[[self mTableView] registerNib:nib forCellReuseIdentifier:cellName];
self.mTableView.rowHeight = UITableViewAutomaticDimension;
self.mTableView.estimatedRowHeight = 100.0;
我正在这样创建UILabel
- (void)awakeFromNib {
[super awakeFromNib];
CGFloat ypos = 0;
for(int i=0;i<6;i++)
{
UILabel *lbl = [[UILabel alloc]init];
lbl.backgroundColor= [UIColor redColor];
lbl.frame = CGRectMake(0,ypos,30,10);
[self addSubview:lbl];
ypos += 16;
}
[self setNeedsLayout];
[self layoutIfNeeded];
// Initialization code
}
-(void)从NIB唤醒{
[超级awakeFromNib];
cgpos=0;
对于(int i=0;i到目前为止,您做得不错。但是不要忘记使用tableView的委托/数据源-cellForRowHeight
此外,正如Lion所提到的,您需要向标签添加约束。如果您以编程方式添加标签,那么也可以以编程方式执行自动布局。contentView在哪里(我希望您是指添加到单元格内容视图中的UIView子类)约束。?您需要为标签设置约束,并将numbersOfLine设置为零。这将自动增加标签高度。@vikash1307 Bro我正在通过编程创建它们,然后您也可以执行Bro。请检查我的回答:这段代码的作用是什么?sizeWithFont:现在已被弃用。这是我最后的希望。。我不想让代码太庞大,这是我的梦想这就是为什么我在寻找更好的方法。谢谢你的解决方案
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *dict1 = (NSDictionary*)[array objectAtIndex:indexPath.row];
NSString *cellText = [dict1 valueForKey:@"test"];
UIFont *cellFont = [UIFont fontWithName:FONT_NAME_GOTHAM_4 size:11.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
return labelSize.height + 80;
}