HomeQualityMusicCollectionCell.m 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // HomeQualityMusicCollectionCell.m
  3. // KulexiuForStudent
  4. //
  5. // Created by 王智 on 2022/9/13.
  6. //
  7. #import "HomeQualityMusicCollectionCell.h"
  8. @interface HomeQualityMusicCollectionCell ()
  9. @property (weak, nonatomic) IBOutlet UIView *containerView;
  10. @property (nonatomic, copy) QualityMusicDetailBlock callback;
  11. @end
  12. @implementation HomeQualityMusicCollectionCell
  13. - (void)awakeFromNib {
  14. [super awakeFromNib];
  15. // Initialization code
  16. CAGradientLayer *layer = [self createGradientLayerFromColor:HexRGB(0xFFF4EC) startPoint:CGPointMake(0.5, 0) endColor:HexRGB(0xFFFDFB) endPoint:CGPointMake(0.5, 1) bounds:CGRectMake(0, 0, KPortraitWidth * 0.83, 320)];
  17. layer.cornerRadius = 10.0f;
  18. layer.masksToBounds = YES;
  19. [self.containerView.layer addSublayer:layer];
  20. }
  21. - (CAGradientLayer *)createGradientLayerFromColor:(UIColor *)fromColor startPoint:(CGPoint)startPoint endColor:(UIColor *)endColor endPoint:(CGPoint)endPoint bounds:(CGRect)bounds {
  22. CAGradientLayer *gradientLayer = [CAGradientLayer layer];
  23. gradientLayer.colors = @[(__bridge id)fromColor.CGColor, (__bridge id)endColor.CGColor];
  24. gradientLayer.startPoint = startPoint;
  25. gradientLayer.endPoint = endPoint;
  26. gradientLayer.frame = bounds;
  27. gradientLayer.locations = @[@(0),@(1.0f)];
  28. return gradientLayer;
  29. }
  30. - (void)configWithSourceArray:(NSMutableArray *)songArray callback:(QualityMusicDetailBlock)callback {
  31. if (callback) {
  32. self.callback = callback;
  33. }
  34. [self.containerView removeAllSubViews];
  35. CGFloat width = KPortraitWidth * 0.83;
  36. for (NSInteger i = 0; i < songArray.count; i++) {
  37. // 添加按钮
  38. HomeQualityMusicCellView *cell = [HomeQualityMusicCellView shareInstance];
  39. cell.frame = CGRectMake(0, 80 * i, width, 80);
  40. BOOL hideLineView = i == songArray.count - 1 ? YES : NO;
  41. MJWeakSelf;
  42. [cell configWithMusicModel:songArray[i] hiddenLineView:hideLineView callback:^(NSString * _Nonnull songId) {
  43. if (weakSelf.callback) {
  44. weakSelf.callback(songId);
  45. }
  46. }];
  47. [self.containerView addSubview:cell];
  48. }
  49. }
  50. @end