This commit is contained in:
Yao
2024-12-25 09:41:16 +08:00
parent 654d456c7d
commit 33a7b58a49
33 changed files with 274 additions and 214 deletions

View File

@@ -75,16 +75,38 @@ static NSString *identifier = @"AvatarCollectionViewCell";
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
DSAvatarCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
NSNumber *number = self.shareArray[indexPath.row];
DSWebMenuType type = number.integerValue;
if (type == DSWebMenuHomeType) {
cell.avatarImageView.image = [UIImage imageNamed:@"zhongxindakai"];
}else if (type == DSWebMenuTelegramType) {
cell.avatarImageView.image = [UIImage imageNamed:@"telegram"];
}else if (type == DSWebMenuWhatsAppType) {
cell.avatarImageView.image = [UIImage imageNamed:@"whatsapp"];
}else if (type == DSWebMenuFacebookType) {
cell.avatarImageView.image = [UIImage imageNamed:@"facebook"];
id value = self.shareArray[indexPath.row];
if ([value isKindOfClass:[LinkConfig class]]) {
LinkConfig *link = value;
if (ISNULLSTR(link.icon)) {
cell.avatarImageView.image = [self circularImageWithText:link.name];
}else{
NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithURL:[NSURL URLWithString:link.icon] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error downloading image: %@", error);
} else {
dispatch_async(dispatch_get_main_queue(), ^{
UIImage *image = [UIImage imageWithData:data];
cell.avatarImageView.image = image;
});
}
}];
[dataTask resume];
}
}else if ([value isKindOfClass:[NSNumber class]]) {
NSNumber *number = value;
DSWebMenuType type = number.integerValue;
if (type == DSWebMenuHomeType) {
cell.avatarImageView.image = [UIImage imageNamed:@"menu"];
}else if (type == DSWebMenuRefreshType) {
cell.avatarImageView.image = [UIImage imageNamed:@"refresh"];
}else if (type == DSWebMenuTelegramType) {
cell.avatarImageView.image = [UIImage imageNamed:@"telegram"];
}else if (type == DSWebMenuWhatsAppType) {
cell.avatarImageView.image = [UIImage imageNamed:@"whatsapp"];
}else if (type == DSWebMenuFacebookType) {
cell.avatarImageView.image = [UIImage imageNamed:@"facebook"];
}
}
cell.avatarImageView.contentMode = UIViewContentModeScaleAspectFit;
return cell;
@@ -92,11 +114,48 @@ static NSString *identifier = @"AvatarCollectionViewCell";
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
NSNumber *number = self.shareArray[indexPath.row];
DSWebMenuType type = number.integerValue;
id value = self.shareArray[indexPath.row];
if (self.webMenuDelegate && [self.webMenuDelegate respondsToSelector:@selector(webMenuCollectionViewWithMenuType:)]) {
[self.webMenuDelegate webMenuCollectionViewWithMenuType:type];
[self.webMenuDelegate webMenuCollectionViewWithMenuType:value];
}
}
- (UIImage *)circularImageWithText:(NSString *)text {
//
UIFont *font = [UIFont systemFontOfSize:16.0f];
CGSize textSize = [text sizeWithFont:font];
//
CGFloat size = 60.0f;
UIGraphicsBeginImageContextWithOptions(CGSizeMake(size, size), NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
//
CGRect rect = CGRectMake(0, 0, size, size);
CGContextAddEllipseInRect(context, rect);
CGContextClip(context);
//
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0); //
CGContextFillRect(context, rect);
//
[[UIColor redColor] set];
// 使
CGFloat x = (size - textSize.width) / 2.0f;
CGFloat y = (size - textSize.height) / 2.0f;
//
[text drawAtPoint:CGPointMake(x, y) withFont:font];
// UIImage
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
//
UIGraphicsEndImageContext();
return image;
}
@end