我有:
我想:
按下更多btn,以便UITextField获得其实际大小。没问题,我可以通过编程方式获取contentSize。它有效,但它溢出了tableHeader
所以我想,好。然后我要做的就是将tableHeader设置为UITextField的“新”计算高度的大小+ 2个UIImageViews的高度。
但是不。它只调整到故事板中设置的现有高度。换句话说,它做了一个或另一个。 并且使用autolayout它完全打破但没有给我任何关于约束的错误。
这看起来很容易让我感到如此愚蠢哈哈
这就是我的代码
- (IBAction)toggleReadMore:(id)sender{
_toggleReadMoreBtn.hidden = YES;
CGRect textFrame = _cityDescription.frame;
_cityDescription.frame = textFrame;
CGRect tableHeaderViewFrame = CGRectMake(0, 0, self.tableView.tableHeaderView.frame.size.width, _cityDescription.contentSize.height + 218.0f ); //textFrame.size.height
self.tableView.tableHeaderView.frame = tableHeaderViewFrame;
textFrame.size.height = _cityDescription.contentSize.height;
[self.tableView setTableHeaderView:self.viewForTableHeader];
请告诉我如何思考
答案 0 :(得分:1)
- (IBAction)readMoreBtnClicked:(UIButton *)sender
{
NSLog(@"Read more Btn Clicked");
NSString *stringToBeDisplayed = @"Any Text Here";
CGSize textSize=[stringToBeDisplayed sizeWithFont:[UIFont systemFontOfSize:30]
constrainedToSize:CGSizeMake(270, 500)
lineBreakMode:NSLineBreakByWordWrapping];
NSLog(@"textSize = %@",NSStringFromCGSize(textSize));
[self.textView setFrame:CGRectMake(self.textView.frame.origin.x,self.textView.frame.origin.y, textSize.width, textSize.height)];
NSLog(@"self.textView.frame = %@",NSStringFromCGRect(self.textView.frame));
[self.textView setText:stringToBeDisplayed];
[self.headerView setFrame:CGRectMake(self.headerView.frame.origin.x,self.headerView.frame.origin.y, 320, dynamicHeightCalculatedAfterTextSize)];
[self.tableView reloadData];
}