ios创建';readmore';。让superview依赖于子视图

ios创建';readmore';。让superview依赖于子视图,ios,resize,subview,superview,tableheader,Ios,Resize,Subview,Superview,Tableheader,用ios设计gaaah让我头疼!! 所以,请帮帮我,梅比向我解释一下,一个人应该如何思考,试图想出解决办法 我有: 如您所见,UITextField的框架在情节提要中设置为小于其实际内容 prototypecell之上的所有内容都在一个UIView中,该UIView通过编程设置为tableHeader 我想: 按“读取更多btn”,以便UITextField获得其实际大小。没问题,我可以通过编程方式获取contentSize。它可以工作,但会溢出表头 所以我想,很好。然后我要做的就是将ta

用ios设计gaaah让我头疼!! 所以,请帮帮我,梅比向我解释一下,一个人应该如何思考,试图想出解决办法

我有:

  • 如您所见,UITextField的框架在情节提要中设置为小于其实际内容
  • prototypecell之上的所有内容都在一个UIView中,该UIView通过编程设置为tableHeader
我想:

按“读取更多btn”,以便UITextField获得其实际大小。没问题,我可以通过编程方式获取contentSize。它可以工作,但会溢出表头

所以我想,很好。然后我要做的就是将tableHeader设置为UITextField的“新”计算高度+2个UIImageView的高度的大小

但是没有。它只会调整到“脚本安装”中设置的现有高度。换句话说,它做一个或另一个。 使用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];
请指导我如何思考

 - (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];
     }


DynamicLightCalculatedAfterTextSize?如何根据db中的内容和textSize设置此项?我忘了告诉大家,我有一个自己的UIView中的textView,它需要与textView一起调整大小。我试着做
[self.textSuperView setFrame:CGRectMake(self.textView.frame.origin.x,self.textView.frame.origin.y,textSize.width,textSize.height)]但什么也没有发生。假设HeaderView的高度为100,不包括(不包括)textview。然后DynamicLightCalculatedAfterTextSize将为-DynamicLightCalculatedAfterTextSize=100+textSize.Height将UIView的超类更改为UITableViewHeaderFooterViews,但我还有来自dbI的动态文本提交我已更新了上面的答案,现在任何文本都可以传递给该方法。由于您是从数据库中获取动态文本,所以在我在上面提供的代码中,传递获取的文本以代替“stringToBeDisplayed”,DynamicLightCalculatedAfterTextSize?如何根据db中的内容和textSize设置此项?我忘了告诉大家,我有一个自己的UIView中的textView,它需要与textView一起调整大小。我试着做
[self.textSuperView setFrame:CGRectMake(self.textView.frame.origin.x,self.textView.frame.origin.y,textSize.width,textSize.height)]但什么也没有发生。假设HeaderView的高度为100,不包括(不包括)textview。然后DynamicLightCalculatedAfterTextSize将为-DynamicLightCalculatedAfterTextSize=100+textSize.Height将UIView的超类更改为UITableViewHeaderFooterViews,但我还有来自dbI的动态文本提交我已更新了上面的答案,现在任何文本都可以传递给该方法。由于您是从数据库中获取动态文本,所以在我上面提供的代码中,传递获取的文本来代替“stringToBeDisplayed”