优化 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,
0,
colorSpace,
kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);
kCGImageAlphaNone);
// kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
if (context == NULL) {
return nil;
@@ -35,6 +36,7 @@
UIImage *grayscaleImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return grayscaleImage;
}

View File

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