FUHeadButtonView.m 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //
  2. // FUHeadButtonView.m
  3. // FULiveDemo
  4. //
  5. // Created by 孙慕 on 2019/1/29.
  6. // Copyright © 2019年 FaceUnity. All rights reserved.
  7. //
  8. #import "FUHeadButtonView.h"
  9. @implementation FUHeadButtonView
  10. -(instancetype)initWithFrame:(CGRect)frame{
  11. if (self = [super initWithFrame:frame]) {
  12. [self setupSubView];
  13. [self addLayoutConstraint];
  14. }
  15. return self;
  16. }
  17. -(void)setupSubView{
  18. _homeButton = [UIButton buttonWithType:UIButtonTypeCustom];
  19. [_homeButton setImage:[UIImage imageNamed:@"render_back_home"] forState:UIControlStateNormal];
  20. [_homeButton addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
  21. [self addSubview:_homeButton];
  22. _selectedImageButton = [UIButton buttonWithType:UIButtonTypeCustom];
  23. [_selectedImageButton setImage:[UIImage imageNamed:@"render_more"] forState:UIControlStateNormal];
  24. [_selectedImageButton addTarget:self action:@selector(selImageAction:) forControlEvents:UIControlEventTouchUpInside];
  25. [self addSubview:_selectedImageButton];
  26. _bulyButton = [UIButton buttonWithType:UIButtonTypeCustom];
  27. [_bulyButton setImage:[UIImage imageNamed:@"render_bugly"] forState:UIControlStateNormal];
  28. [_bulyButton addTarget:self action:@selector(buglyAction:) forControlEvents:UIControlEventTouchUpInside];
  29. [self addSubview:_bulyButton];
  30. _switchButton = [UIButton buttonWithType:UIButtonTypeCustom];
  31. [_switchButton setImage:[UIImage imageNamed:@"render_camera_switch"] forState:UIControlStateNormal];
  32. [_switchButton addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventTouchUpInside];
  33. [self addSubview:_switchButton];
  34. //先创建一个数组用于设置标题
  35. NSArray *arr = [[NSArray alloc]initWithObjects:@"BGRA",@"YUV", nil];
  36. _segmentedControl = [[FUSegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 77, 27) items:arr];
  37. _segmentedControl.selectedTitleColor = FUColorFromHex(0x2C2E30);
  38. _segmentedControl.layer.masksToBounds = YES;
  39. _segmentedControl.layer.cornerRadius = 4;
  40. _segmentedControl.layer.borderWidth = 1.5;
  41. _segmentedControl.layer.borderColor = [UIColor whiteColor].CGColor;
  42. _segmentedControl.selectedIndex = 0;
  43. @FUWeakify(self);
  44. _segmentedControl.selectHandler = ^(NSUInteger index) {
  45. @FUStrongify(self);
  46. if ([self.delegate respondsToSelector:@selector(headButtonViewSegmentedChange:)]) {
  47. [self.delegate headButtonViewSegmentedChange:index];
  48. }
  49. };
  50. [self addSubview:_segmentedControl];
  51. }
  52. -(void)addLayoutConstraint{
  53. [_homeButton mas_makeConstraints:^(MASConstraintMaker *make) {
  54. make.bottom.equalTo(self);
  55. make.leading.equalTo(self).offset(10);
  56. make.height.width.mas_equalTo(44);
  57. }];
  58. [_segmentedControl mas_makeConstraints:^(MASConstraintMaker *make) {
  59. make.centerY.equalTo(self.homeButton);
  60. make.leading.equalTo(self.homeButton.mas_trailing).offset(12);
  61. make.width.mas_equalTo(77);
  62. make.height.mas_equalTo(27);
  63. }];
  64. [_switchButton mas_makeConstraints:^(MASConstraintMaker *make) {
  65. make.trailing.equalTo(self).offset(-10);
  66. make.centerY.equalTo(self.homeButton);
  67. make.height.width.mas_equalTo(44);
  68. }];
  69. [_bulyButton mas_makeConstraints:^(MASConstraintMaker *make) {
  70. make.trailing.equalTo(self.switchButton.mas_leading).offset(-10);
  71. make.centerY.equalTo(self.homeButton);
  72. make.height.width.mas_equalTo(44);
  73. }];
  74. [_selectedImageButton mas_makeConstraints:^(MASConstraintMaker *make) {
  75. make.trailing.equalTo(self.bulyButton.mas_leading).offset(-10);
  76. make.centerY.equalTo(self.homeButton);
  77. make.height.width.mas_equalTo(44);
  78. }];
  79. }
  80. #pragma mark - UI 交互
  81. -(void)backAction:(UIButton *)btn{
  82. if ([_delegate respondsToSelector:@selector(headButtonViewBackAction:)]) {
  83. [_delegate headButtonViewBackAction:btn];
  84. }
  85. }
  86. -(void)selImageAction:(UIButton *)btn{
  87. if ([_delegate respondsToSelector:@selector(headButtonViewSelImageAction:)]) {
  88. [_delegate headButtonViewSelImageAction:btn];
  89. }
  90. }
  91. -(void)buglyAction:(UIButton *)btn{
  92. if ([_delegate respondsToSelector:@selector(headButtonViewBuglyAction:)]) {
  93. [_delegate headButtonViewBuglyAction:btn];
  94. }
  95. }
  96. -(void)switchAction:(UIButton *)btn{
  97. if ([_delegate respondsToSelector:@selector(headButtonViewSwitchAction:)]) {
  98. [_delegate headButtonViewSwitchAction:btn];
  99. }
  100. }
  101. @end