iOS_自动变高度的headerView



如果带首行缩进的Label


在控制器viewDidAppear中,delay执行下面的代码

- (void)dynamicLayout
{
    _headerView.contentLabel.text = @"我们在慢慢长大 季节不断流转 路边绽放的花儿也不断变化着 那个季节所开的花 是什么名字呢 轻盈的摇曳着 每次触碰都有些刺痛 把鼻子凑过去 有股淡淡的夏日里的清香 这清香慢慢曾现着它应有的姿态 我们慢慢地在成长不过。。。那朵花肯定依然在某处绽放着 没错 我们不管到什么时候。。。 都会继续实现那花的愿望而努力我们在慢慢长大 季节不断流转 路边绽放的花儿也不断变化着 那个季节所开的花 是什么名字呢 轻盈的摇曳着 每次触碰都有些刺痛 把鼻子凑过去 有股淡淡的夏日里的清香 这清香慢慢曾现着它应有的姿态 我们慢慢地在成长不过。。。那朵花肯定依然在某处绽放着 没错 我们不管到什么时候。。。 都会继续实现那花的愿望而努力我们在慢慢长大 季节不断流转 路边绽放的花儿也不断变化着 那个季节所开的花 是什么名字呢 轻盈的摇曳着 每次触碰都有些刺痛 把鼻子凑过去 有股淡淡的夏日里的清香 这清香慢慢曾现着它应有的姿态 我们慢慢地在成长不过。。。那朵花肯定依然在某处绽放着 没错 我们不管到什么时候。。。 都会继续实现那花的愿望而努力";
    
    
    
    
    // 让headerView 先更改数据源后,自动变高度
    [self.headerView setNeedsLayout];
    [self.headerView layoutIfNeeded];
    
    // 取出计算后的新高度
    CGFloat height = self.headerView.lastLine.y;
    
    CGRect headerFrame = self.headerView.frame;
    headerFrame.size.height = height;
    self.headerView.frame = headerFrame;
    [self.tableView setTableHeaderView:self.headerView];
    
    
}

自定义的headView

#import <UIKit/UIKit.h>

@interface SGMemoDetailHeaderView : UIView
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (weak, nonatomic) IBOutlet UILabel *contentLabel;
@property (weak, nonatomic) IBOutlet UILabel *lastLine;
+ (instancetype)SGMemoDetailHeaderView;
@end





#import "SGMemoDetailHeaderView.h"
@implementation SGMemoDetailHeaderView
+ (instancetype)SGMemoDetailHeaderView
{
    // mainBundel加载xib,扩展名不用写.xib
    NSArray *arrayXibObjects = [[NSBundle mainBundle] loadNibNamed:@"SGMemoDetailHeaderView" owner:nil options:nil];
    return arrayXibObjects[0];
}
@end






















































你可能感兴趣的:(ios,xcode,自动布局,autolayout,HeadView)