LKS_LocalInspectPanelLabelView.m 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // LKS_LocalInspectPanelLabelView.m
  3. // LookinServer
  4. //
  5. // Created by Li Kai on 2019/5/15.
  6. // https://lookin.work
  7. //
  8. #import "LKS_LocalInspectPanelLabelView.h"
  9. #import "LookinServerDefines.h"
  10. @implementation LKS_LocalInspectPanelLabelView {
  11. CGFloat _horInset;
  12. }
  13. - (instancetype)initWithFrame:(CGRect)frame {
  14. if (self = [super initWithFrame:frame]) {
  15. _horInset = 8;
  16. _interspace = 10;
  17. self.userInteractionEnabled = NO;
  18. self.leftLabel = [UILabel new];
  19. self.leftLabel.textAlignment = NSTextAlignmentLeft;
  20. [self addSubview:self.leftLabel];
  21. self.rightLabel = [UILabel new];
  22. self.rightLabel.textAlignment = NSTextAlignmentRight;
  23. [self addSubview:self.rightLabel];
  24. }
  25. return self;
  26. }
  27. - (void)layoutSubviews {
  28. [super layoutSubviews];
  29. self.leftLabel.frame = CGRectMake(_horInset, 0, self.leftLabel.lks_bestWidth, self.bounds.size.height);
  30. if (self.rightLabel.text.length) {
  31. CGFloat rightLabelWidth = self.bounds.size.width - _horInset - _interspace - CGRectGetMaxX(self.leftLabel.frame);
  32. if (rightLabelWidth <= 0) {
  33. self.rightLabel.frame = CGRectZero;
  34. } else {
  35. self.rightLabel.frame = CGRectMake(CGRectGetMaxX(self.leftLabel.frame) + _interspace, 0, rightLabelWidth, self.bounds.size.height);
  36. }
  37. }
  38. self.bottomBorderLayer.frame = CGRectMake(_horInset, self.bounds.size.height, self.bounds.size.width - _horInset * 2, 1 / [[UIScreen mainScreen] scale]);
  39. }
  40. - (CGSize)sizeThatFits:(CGSize)size {
  41. CGSize leftSize = [self.leftLabel sizeThatFits:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)];
  42. size.height = leftSize.height + self.verInset;
  43. size.width = _horInset * 2 + leftSize.width;
  44. if (self.rightLabel.text.length) {
  45. size.width += self.rightLabel.lks_bestWidth + _interspace;
  46. }
  47. return size;
  48. }
  49. - (void)addBottomBorderLayer {
  50. if (self.bottomBorderLayer) {
  51. return;
  52. }
  53. self.bottomBorderLayer = [CALayer new];
  54. [self.bottomBorderLayer lookin_removeImplicitAnimations];
  55. self.bottomBorderLayer.backgroundColor = [UIColor colorWithRed:222/255.0 green:224/255.0 blue:226/255.0 alpha:1].CGColor;
  56. [self.layer addSublayer:self.bottomBorderLayer];
  57. }
  58. @end