是否有任何此类方法或解决方案可根据内容自动调整tableview的行高。我的意思是我不想根据行的内容指定行高并希望行高。如果没有这样的方法然后告诉我解决方案,当设备的方向改变时,如何改变高度?
答案 0 :(得分:3)
您必须找到内容的高度并可以使用
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return "your content height + your padding height value";
}
在方向更改时,只需重新加载表视图即可;
答案 1 :(得分:2)
检查出来
// --dynamic cell height according to the text--
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *text = <your text>;
CGSize constraint = CGSizeMake(210, 20000.0f);
CGSize size = [text sizeWithFont:[UIFont fontWithName:@"Helvetica-Light" size:14] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
// constratins the size of the table row according to the text
CGFloat height = MAX(size.height,60);
return height + (15);
// return the height of the particular row in the table view
}
希望这会有所帮助
你尝试过这种方法的方向编辑吗?
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return YES;
}
或者如果您的表格单元格是自定义的标签和图像视图等,那么您可以使用setAutoresizingMask:在每个上自动调整方向。
[yourview setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
答案 2 :(得分:1)
你可以实现
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
UITableView的委托方法。
如果你谷歌它,你应该能够找到很多关于它的教程。
以下是一个例子:
http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/
答案 3 :(得分:0)
您必须使用:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
是的 - 我知道你很了解这种方法,我仔细阅读了你的问题。
NSDictionary *thisCell = (NSDictionary *)[myArray objectAtIndexPath:indexPath.row];
NSString *myCellContents = [thisCell valueForKey:@"MyStringIWantToCheckOut"];
if ([mycellContents length] > 25) {
return 80;
} else {
return 40;
}
就方向更改而言,您必须在委托方法中执行此操作:
-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
然后点击reloadData
上的TableView
。
答案 4 :(得分:0)
- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row){
case 0:
if(indexPath.section == 0)
//title
return 75;
default:
return 75;
}
}
答案 5 :(得分:0)
func tableView(_ heightForRowAttableView:UITableView,heightForRowAt indexPath:IndexPath) - &gt; CGFloat的 { 返回UITableViewAutomaticDimension } 强>
表示行的动态高度,否则你可以给出静态高度而不是&#34; UITableViewAutomaticDimension&#34;