使用表格视图标题中的扩展文本扩展标签和视图

Posted

技术标签:

【中文标题】使用表格视图标题中的扩展文本扩展标签和视图【英文标题】:Expand the label and view with expanding text in tableview header 【发布时间】:2017-11-25 08:36:09 【问题描述】:

我制作了一个可展开和可折叠的表格视图。如果点击部分,它们会展开,如果它们已经展开,它们会折叠。

对于部分,我已经查看了。在 UIView 内部,有标签,标签上有点击手势。它工作正常。现在,问题是标签和视图的大小是固定的,但实际上如果标签内的文本超过标签的高度,我希望标签扩大。但是,即使几次努力我也无法实现.请检查以下代码并给出一些进一步的方向。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section


    UIView *sectionView=[[UIView alloc]initWithFrame:CGRectMake(30, 5,self.expandableTableView.frame.size.width-30,40)];
    sectionView.tag=section;
    UILabel *viewLabel=[[UILabel alloc]initWithFrame:CGRectMake(10,5,sectionView.frame.size.width-60, 40)];
    imgView=[[UIImageView alloc]initWithFrame:CGRectMake(viewLabel.frame.size.width+10,10,30, 30)];
    imgView.image = [UIImage imageNamed:@"down.png"];
    viewLabel.backgroundColor=[UIColor clearColor];
    viewLabel.textColor=[UIColor darkTextColor];
    viewLabel.font=[UIFont systemFontOfSize:15];
    viewLabel.text=[NSString stringWithFormat:@"List of %@",[_sectionArray objectAtIndex:section]];
    [sectionView addSubview:viewLabel];
    [sectionView addSubview:imgView];
    /********** Add a border with Section view *******************/

    sectionView.layer.borderWidth = 1;
    sectionView.layer.borderColor =  [[UIColor grayColor] CGColor];
    sectionView.layer.cornerRadius = 5;


    /********** Add UITapGestureRecognizer to SectionView   **************/

    UITapGestureRecognizer  *headerTapped   = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sectionHeaderTapped:)];
    [sectionView addGestureRecognizer:headerTapped];

    return  sectionView;



任何帮助将不胜感激。在此先感谢

【问题讨论】:

***.com/questions/25642493/…这个问题你看了吗? 【参考方案1】:

您的答案 - “但实际上,如果标签内的文本超过标签的高度,我希望标签扩展”

[viewLabel sizeToFit]

实际上,您正在尝试返回视图。使用自动布局在情节提要中设计这种视图要容易得多。

对于折叠或展开表格视图,您可以采用另一种方式。您可以在表格单元格中设置此标签。然后您可以动态创建单元格,将单元格插入数组中,使用数组重新加载表格视图。使用

设置它们的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

当您调用 didDeselectRowAtIndexPath 时,单元格将被取消选择。您可以使用 heightForRowAtIndexPath 返回高度 0。

我希望这是您正在搜索的内容。

【讨论】:

以上是关于使用表格视图标题中的扩展文本扩展标签和视图的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局表格视图时如何增加表格视图单元格中的标签高度(取决于文本)?

iOS:自定义表格视图单元格中的约束

表格视图单元格中的自增长标签

单击表格视图中的按钮时如何更改表格视图外部的标签文本

使用自动布局对 uitableview 页脚视图进行运行时扩展

文本字段标签和表格视图