NIMKitTitleView.m 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //
  2. // NIMKitTitleView.m
  3. // NIMKit
  4. //
  5. // Created by chris on 2017/11/1.
  6. // Copyright © 2017年 NetEase. All rights reserved.
  7. //
  8. #import "NIMKitTitleView.h"
  9. #import "UIView+NIM.h"
  10. @implementation NIMKitTitleView
  11. - (instancetype)initWithFrame:(CGRect)frame
  12. {
  13. self = [super initWithFrame:frame];
  14. if (self)
  15. {
  16. _titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
  17. _titleLabel.font = [UIFont systemFontOfSize:17.f];
  18. _titleLabel.lineBreakMode = NSLineBreakByTruncatingMiddle;
  19. _titleLabel.textAlignment = NSTextAlignmentCenter;
  20. _subtitleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
  21. _subtitleLabel.textColor = LCTextGray;
  22. _subtitleLabel.font = [UIFont systemFontOfSize:12.f];
  23. _subtitleLabel.lineBreakMode = NSLineBreakByTruncatingMiddle;
  24. _subtitleLabel.textAlignment = NSTextAlignmentCenter;
  25. [self addSubview:_titleLabel];
  26. [self addSubview:_subtitleLabel];
  27. }
  28. return self;
  29. }
  30. - (CGSize)sizeThatFits:(CGSize)size
  31. {
  32. CGFloat margin = 80.f;
  33. CGFloat maxWidth = [UIScreen mainScreen].bounds.size.width - margin * 2;
  34. [self.titleLabel sizeToFit];
  35. self.titleLabel.nim_width = MIN(self.titleLabel.nim_width, maxWidth);
  36. [self.subtitleLabel sizeToFit];
  37. self.subtitleLabel.nim_width = MIN(self.subtitleLabel.nim_width, maxWidth);
  38. CGFloat width = MAX(self.titleLabel.nim_width, self.subtitleLabel.nim_width);
  39. return CGSizeMake(width, self.titleLabel.nim_height + self.subtitleLabel.nim_height);
  40. }
  41. - (void)layoutSubviews
  42. {
  43. [super layoutSubviews];
  44. self.titleLabel.nim_centerX = self.nim_width * .5f;
  45. self.subtitleLabel.nim_centerX = self.nim_width * .5f;
  46. self.subtitleLabel.nim_bottom = self.nim_height;
  47. }
  48. @end