iOS开发实现UIImageView的分类
2019/7/9 22:36:06
本文主要是介绍iOS开发实现UIImageView的分类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文实例为大家分享了iOS实现UIImageView的分类代码,供大家参考,具体内容如下
一.Objective-C版
.h文件
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import <QuartzCore/QuartzCore.h> /** * 这个分类为UIImageView添加一些有用的方法 */ @interface UIImageView (WLKit) /** * 创建一个UIImageView * * @param image UIImageView的图片 * @param rect UIImageView的坐标 * * @return 返回一个UIImageView */ + (instancetype _Nonnull)imageViewWithImage:(UIImage *_Nonnull)image frame:(CGRect)rect; /** * 创建一个UIImageView * * @param image UIImageView的图片 * @param size UIImageView的大小 * @param center UIImageView的中心 * * @return 返回一个UIImageView */ + (instancetype _Nonnull)imageViewWithImage:(UIImage *_Nonnull)image size:(CGSize)size center:(CGPoint)center; /** * 创建一个UIImageView * * @param image UIImageView的图片 * @param center UIImageView的中心 * * @return Returns the created UIImageView */ + (instancetype _Nonnull)imageViewWithImage:(UIImage *_Nonnull)image center:(CGPoint)center; /** * Create an UIImageView with an image and use it as a template with the given color * * @param image UIImageView image * @param tintColor UIImageView tint color * * @return Returns the created UIImageView */ + (instancetype _Nonnull)imageViewWithImageAsTemplate:(UIImage *_Nonnull)image tintColor:(UIColor *_Nonnull)tintColor; /** * Create a drop shadow effect * * @param color Shadow's color * @param radius Shadow's radius * @param offset Shadow's offset * @param opacity Shadow's opacity */ - (void)setImageShadowColor:(UIColor *_Nonnull)color radius:(CGFloat)radius offset:(CGSize)offset opacity:(CGFloat)opacity; /** * Mask the current UIImageView with an UIImage * * @param image The mask UIImage */ - (void)setMaskImage:(UIImage *_Nonnull)image; @end
.m文件
#import "UIImageView+WLKit.h" @implementation UIImageView (WLKit) + (instancetype _Nonnull)imageViewWithImage:(UIImage *_Nonnull)image frame:(CGRect)rect { UIImageView *_image = [[UIImageView alloc] init]; [_image setFrame:rect]; [_image setImage:image]; return _image; } + (instancetype _Nonnull)imageViewWithImage:(UIImage *_Nonnull)image size:(CGSize)size center:(CGPoint)center { UIImageView *_image = [[UIImageView alloc] init]; [_image setFrame:CGRectMake(0, 0, size.width, size.height)]; [_image setImage:image]; [_image setCenter:center]; return _image; } + (instancetype _Nonnull)imageViewWithImage:(UIImage *_Nonnull)image center:(CGPoint)center { UIImageView *_image = [[UIImageView alloc] init]; [_image setFrame:CGRectMake(0, 0, image.size.width, image.size.height)]; [_image setImage:image]; [_image setCenter:center]; return _image; } + (instancetype _Nonnull)imageViewWithImageAsTemplate:(UIImage *_Nonnull)image tintColor:(UIColor *_Nonnull)tintColor { UIImageView *_image = [[UIImageView alloc] init]; image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [_image setImage:image]; [_image setTintColor:tintColor]; return _image; } - (void)setImageShadowColor:(UIColor *_Nonnull)color radius:(CGFloat)radius offset:(CGSize)offset opacity:(CGFloat)opacity { self.layer.shadowColor = color.CGColor; self.layer.shadowRadius = radius; self.layer.shadowOffset = offset; self.layer.shadowOpacity = opacity; self.clipsToBounds = NO; } - (void)setMaskImage:(UIImage *_Nonnull)image { CALayer *mask = [CALayer layer]; mask.contents = (id)[image CGImage]; mask.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height); self.layer.mask = mask; self.layer.masksToBounds = YES; } - (void)setAlpha:(CGFloat)alpha { if ([self.superview isKindOfClass:[UITableView class]]) { if (self.superview.tag == 836913) { if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleLeftMargin) { if (self.frame.size.width < 10 && self.frame.size.height > self.frame.size.width) { UIScrollView *sc = (UIScrollView*)self.superview; if (sc.frame.size.height < sc.contentSize.height) { [super setAlpha:0.5]; return; } } } } if (self.superview.tag == 836914) { if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleTopMargin) { if (self.frame.size.height < 10 && self.frame.size.height < self.frame.size.width) { UIScrollView *sc = (UIScrollView*)self.superview; if (sc.frame.size.width < sc.contentSize.width) { return; } } } } } [super setAlpha:alpha]; } @end
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。
这篇关于iOS开发实现UIImageView的分类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12Axios库资料:新手入门必读教程
- 2024-11-11Axios库项目实战:新手入门教程
- 2024-09-29Axios库教程:初学者必备指南
- 2024-08-29Axios库资料:新手入门指南与基本使用教程
- 2024-03-14system bios shadowed
- 2024-03-14gabios
- 2024-02-07iOS应用提交上架的最新流程
- 2024-02-06打包 iOS 的 IPA 文件
- 2023-12-07uniapp打包iOS应用并通过审核:代码混淆的终极解决方案 ?
- 2023-11-25uniapp IOS从打包到上架流程(详细简单) 原创