您的位置:首页 > 移动开发 > IOS开发

iOS_自动变高度的headerView

2015-12-16 18:21 357 查看


如果带首行缩进的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息