优化 UIImage+Utils.m 中的灰度图像处理逻辑,调整 MedalsLevelIndicatorView.m 中的图片视图约束和间距,更新图像加载逻辑以使用裁剪后的图像,保持代码结构一致性。

This commit is contained in:
edwinQQQ
2025-06-19 11:28:07 +08:00
parent a0fc15fefd
commit c978a8c355
2 changed files with 13 additions and 9 deletions

View File

@@ -23,8 +23,9 @@
8, 8,
0, 0,
colorSpace, colorSpace,
kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast); kCGImageAlphaNone);
CGColorSpaceRelease(colorSpace); // kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
if (context == NULL) { if (context == NULL) {
return nil; return nil;
@@ -35,6 +36,7 @@
UIImage *grayscaleImage = [UIImage imageWithCGImage:imageRef]; UIImage *grayscaleImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef); CGImageRelease(imageRef);
CGContextRelease(context); CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return grayscaleImage; return grayscaleImage;
} }

View File

@@ -24,6 +24,8 @@
- (void)setSelected:(BOOL)selected animated:(BOOL)animated; - (void)setSelected:(BOOL)selected animated:(BOOL)animated;
- (void)setImageUrl:(NSString *)imageUrl; - (void)setImageUrl:(NSString *)imageUrl;
//- (void)
@end @end
@implementation LevelItemView @implementation LevelItemView
@@ -70,14 +72,13 @@
// //
_imageView = [[NetImageView alloc] init]; _imageView = [[NetImageView alloc] init];
_imageView.contentMode = UIViewContentModeScaleAspectFill; _imageView.contentMode = UIViewContentModeScaleAspectFill;
_imageView.layer.cornerRadius = 15;
_imageView.clipsToBounds = YES; _imageView.clipsToBounds = YES;
[self addSubview:_imageView]; [self addSubview:_imageView];
[_imageView mas_makeConstraints:^(MASConstraintMaker *make) { [_imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self); make.centerX.mas_equalTo(self);
make.bottom.mas_equalTo(_dotView.mas_top).offset(-4); make.bottom.mas_equalTo(_dotView.mas_top).offset(-4);
make.width.height.mas_equalTo(30); make.width.height.mas_equalTo(40);
}]; }];
// //
@@ -102,8 +103,9 @@
[_imageView loadImageWithUrl:imageUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) { [_imageView loadImageWithUrl:imageUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
@kStrongify(self); @kStrongify(self);
if (image) { if (image) {
self.originalImage = image; UIImage *cutImage = [image cutImage:CGSizeMake(40, 40)];
self.grayImage = [image grayscaleImage]; self.originalImage = cutImage;
self.grayImage = [cutImage grayscaleImage];
[self updateImageEffect]; [self updateImageEffect];
} }
}]; }];
@@ -117,10 +119,10 @@
if (_isSelected && _originalImage) { if (_isSelected && _originalImage) {
// //
_imageView.image = _originalImage; self.imageView.image = _originalImage;
} else if (!_isSelected && _grayImage) { } else if (!_isSelected && _grayImage) {
// //
_imageView.image = _grayImage; self.imageView.image = _grayImage;
} }
} }
@@ -200,7 +202,7 @@
// //
CGFloat itemWidth = 25.0; // CGFloat itemWidth = 25.0; //
CGFloat spacing = 15.0; // CGFloat spacing = 35.0; //
CGFloat totalWidth = itemWidth * maxLevel + spacing * (maxLevel - 1); CGFloat totalWidth = itemWidth * maxLevel + spacing * (maxLevel - 1);
CGFloat startX = (self.bounds.size.width - totalWidth) / 2; CGFloat startX = (self.bounds.size.width - totalWidth) / 2;