我制作了一个可扩展且可折叠的桌面视图。如果部分被挖掘,它们会扩展,如果它们已经扩展,它们会崩溃。
对于部分事情,我已经采取了一个观点。在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;
}
任何帮助将不胜感激。谢谢提前
答案 0 :(得分:0)
您的答案 - “但实际上,如果标签内的文字超过标签的高度,我希望标签展开”
[viewLabel sizeToFit]
实际上你正试图返回一个视图。使用自动布局在故事板中设计这种视图要容易得多。
要折叠或展开tableview,您可以采取其他方式。您可以在表格单元格中设置此标签。然后,您可以动态创建单元格,将单元格插入数组中,使用数组重新加载tableview。使用
设置高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
当您调用didDeselectRowAtIndexPath时,将取消选择该单元格。您可以使用heightForRowAtIndexPath返回高度0。
我希望这就是你在寻找的东西。