我正在尝试做这样的事情,我有一个UIViewControler
。因此,在我的故事板中,我将UITableView
拖放到视图中。我应该在该表视图中显示少量自定义行。但我想动态更改该表视图的高度。(根据表视图中的行数)。
我尝试了下面的代码,但到目前为止没有任何工作。
CGRect tvframe = [tableView frame];
[tableView setFrame:CGRectMake(tvframe.origin.x,
tvframe.origin.y,
tvframe.size.width,
tvframe.size.height + 20)];
我也试过这个
CGRect frame = self.tableView.frame;
frame.size = self.tableView.contentSize;
self.tableView.frame = frame;
但没有任何对我有用..请有人告诉我我该怎么做。
谢谢。答案 0 :(得分:1)
在Autolayout中,如果您想更改框架,请尝试约束(IBOutlet
的{{1}})。
设置约束出口并通过以下方式更改NSLayoutConstraint
值:
constant
答案 1 :(得分:1)
我希望这个答案可以帮助你...
对于动态TableviewCell高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *OptName_length = @" Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam";
NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:17.0]};
CGRect rect = [OptName_length boundingRectWithSize:CGSizeMake(tableView.bounds.size.width-150.0, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attributes
context:nil];
CGSize requiredSize = rect.size;
return requiredSize.height +5.0f;
}
值150.0是单元格中标签或文本视图的静态宽度。 OR apprx在标签的前导或尾随中的其他元素的宽度或水平空间值。将前导,尾随,顶部和底部约束设置为单元格中的textview,不要设置静态高度
将tableview高度调整为no。细胞......
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES];
[self adjustHeightOfTableview];
}
- (void)adjustHeightOfTableview
{
CGFloat height = tblMainMenu.contentSize.height;
CGFloat maxHeight = tblMainMenu.superview.frame.size.height - tblMainMenu.frame.origin.y;
// if the height of the content is greater than the maxHeight of
// total space on the screen, limit the height to the size of the
// superview.
if (height > maxHeight)
height = maxHeight;
// now set the height constraint accordingly
self.tableViewHeightConstraint.constant = height;
[UIView animateWithDuration:0.1 animations:^{
[self.view setNeedsUpdateConstraints];
}];
}
答案 2 :(得分:0)
CGRect frame = self.tableView.frame;
frame.size.height = resourceArray.count*row_height;
self.tableView.frame = frame;
答案 3 :(得分:0)
请使用此
tableView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
答案 4 :(得分:0)
尝试以下代码,
CGFloat height = self.tableView.rowHeight;
height *= [myArray count];
CGRect tableViewFrame = self.tableView.frame;
tableViewFrame.size.height = height;
self.tableView.frame = tableViewFrame;
答案 5 :(得分:0)
试试这个:
open (INFILE, $ARGV[1]) or die "An input file is required as argument\n";
@store=();
while(<INFILE>)
{
chomp();
@data=split(/,/);
#
#
#
if (%store ne "0")
{
print "Printing users:\n";
foreach $key (keys %store)
{print $key."\n";}
}
print "Printing users:\n";
foreach $key (keys %store)
{print $key."\n";}
}
答案 6 :(得分:0)
我希望它有所帮助......
如果您的行数是固定的,那么你可以在没有动态约束的情况下做到这一点。
在您的项目.h文件..
foreach ($array1 as $key => $value)
{
foreach ($array2 as $key1 => $value1)
{
if($value['DispensaryInventory']['product_option_id']==$value1['DriverInventory']['product_option_id'])
{
$price_data[$key]['Mydata'] = $value1['Mydata'];
}
}
}
在您的项目.m文件
中UITableView *tbl;
int numOfRows;
float tableViewheight,tableViewWidth,heightForRow;