1

gaaah 在 ios 中设计让我头疼!!所以,请帮助我,并向我解释一个人应该如何思考试图提出解决方案。

我有:

带有标题的 UITableView

  • 如您所见, UITextField 的框架在情节提要中设置为小于其实际内容。
  • 原型单元上方的所有内容都在以编程方式设置为 tableHeader 的 UIView 中。

我想要:

按 read more btn 以便 UITextField 获得其实际大小。没问题,我可以通过以编程方式获取 contentSize 来做到这一点。它可以工作,但它会溢出 tableHeader

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

但是没有。它只会调整到故事板 insted 中设置的现有高度。换句话说,它做一个或另一个。并且使用自动布局它完全打破但没有给我任何关于约束的错误。

这似乎很容易让我觉得很愚蠢哈哈

这就是我的代码

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

请指导我如何思考

4

1 回答 1

1

ScrrenShot 指示约束

 - (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];
     }
于 2013-05-01T07:22:04.770 回答