您的当前位置:首页iOS比较实用的第三方

iOS比较实用的第三方

2024-12-12 来源:哗拓教育

Reachability 相信很多人都会用的到网络监测吧,这个是很多人都在用的一个类,很方便,它有三个定义类型

typedef enum {
NotReachable = 0,//无网络
ReachableViaWiFi,//移动网络
ReachableViaWWAN//WIFI状态
} NetworkStatus;

根据这个就可以判断了

Masonry 纯代码适配,是一个很好用的第三方,目前很多人都在用,但是有一个缺点是代码量比较大,对于要快速开发 或者 项目比较急得人来说可能相对来说有点不合适,我就不详细介绍他的用法了

关于代码适配,我在这重点介绍一下SDAutoLayout这个第三方适配,它相对于Masonry更简洁,速度快,一句代码完成适配 怎么样?是不是很牛的样子啊好了,现在说一下用法

下面粘一段适配代码

   _img = [[UIImageView alloc] init];
   [self addSubview:_img];
    _img.sd_layout.leftSpaceToView(self,5).topSpaceToView(self,5).widthIs(80).heightIs(80);
    
    _productName = [[UILabel alloc] init];
    _productName.numberOfLines = 0;
    _productName.font = [UIFont systemFontOfSize:15.0];
    [self addSubview:_productName];
      _productName.sd_layout.leftSpaceToView(_img,5).topSpaceToView(self,5).widthIs(SCREEN_WIDTH - 95).heightIs(50);
    
    _priceLab = [[UILabel alloc] init];
    _priceLab.textColor = UIRED;
    [self addSubview:_priceLab];
    _priceLab.sd_layout.leftSpaceToView(_img,5).topSpaceToView(_productName,0).widthIs(SCREEN_WIDTH - 95).heightIs(30);
    
    _orderNum = [[UILabel alloc] init];
    _orderNum.font = [UIFont systemFontOfSize:13.0];
    [self addSubview:_orderNum];
    _orderNum.sd_layout.leftSpaceToView(self,5).topSpaceToView(_img,0).widthIs(SCREEN_WIDTH / 2 - 5).heightIs(20);
    
    _numPrice = [[UILabel alloc] init];
    _numPrice.textAlignment = NSTextAlignmentRight;
    _numPrice.textColor = UIRED;
    _numPrice.font = [UIFont systemFontOfSize:15.0f];
    [self addSubview:_numPrice];
    _numPrice.sd_layout.leftSpaceToView(_orderNum,5).topSpaceToView(_priceLab,0).widthIs(SCREEN_WIDTH / 2 - 10).heightIs(20);

每个控件的最后一句就是适配代码,够简洁吧? 它还可以自适应cell高度哦!

选择图片的第三方库ZYQAssetPickerController,大家在开发中会遇到多选图片上传的功能,用这个就行,不过有点老了,谁有最新的欢迎提供!!!

使用也是很简单的 首先要导入项目pod 'ZYQAssetPickerController', '~> 1.0.0'
然后把#import "ZYQAssetPickerController.h" 导入需要的类里面
开代理ZYQAssetPickerControllerDelegate
// 获得所有的自定义相簿
PHFetchResult<PHAssetCollection *> *assetCollections = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
// 遍历所有的自定义相簿
for (PHAssetCollection *assetCollection in assetCollections) {
[self enumerateAssetsInAssetCollection:assetCollection original:YES];
}

// 获得相机胶卷
PHAssetCollection *cameraRoll = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:nil].lastObject;
// 遍历相机胶卷,获取大图
[self enumerateAssetsInAssetCollection:cameraRoll original:YES];
picker.delegate = self;
[self presentViewController:picker animated:YES completion:nil];

上面是点击方法
- (void)getThumbnailImages
{
// 获得所有的自定义相簿
PHFetchResult<PHAssetCollection *> *assetCollections = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
// 遍历所有的自定义相簿
for (PHAssetCollection *assetCollection in assetCollections) {
[self enumerateAssetsInAssetCollection:assetCollection original:NO];
}
// 获得相机胶卷
PHAssetCollection *cameraRoll = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:nil].lastObject;
[self enumerateAssetsInAssetCollection:cameraRoll original:NO];
}
- (void)enumerateAssetsInAssetCollection:(PHAssetCollection *)assetCollection original:(BOOL)original
{
// NSLog(@"相簿名:%@", assetCollection.localizedTitle);
[imgArr removeAllObjects];
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
// 同步获得图片, 只会返回1张图片
options.synchronous = YES;

// 获得某个相簿中的所有PHAsset对象
PHFetchResult<PHAsset *> *assets = [PHAsset fetchAssetsInAssetCollection:assetCollection options:nil];
for (PHAsset *asset in assets) {
    // 是否要原图
    CGSize size = original ? CGSizeMake(asset.pixelWidth, asset.pixelHeight) : CGSizeZero;
    
    // 从asset中获得图片
    [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
        NSLog(@"%@", result);
    }];
}
}

最终我们要得到图片
/*
得到选中的图片
*/

pragma mark - ZYQAssetPickerController Delegate

-(void)assetPickerController:(ZYQAssetPickerController *)picker didSelectAsset:(ALAsset*)asset
{
picker.maximumNumberOfSelection = 4 - [self.photos count];
}

-(void)assetPickerController:(ZYQAssetPickerController *)picker didFinishPickingAssets:(NSArray *)assets{

[imgArr removeAllObjects];
[picker dismissViewControllerAnimated:YES completion:nil];
for (int i=0; i<assets.count; i++) {
    ALAsset *asset=assets[i];
    
    UIImage *tempImg=[UIImage imageWithCGImage:asset.defaultRepresentation.fullScreenImage];
    [imgArr addObject:tempImg];
    
    
}
[self creatBtn];
///Users/shangce/Desktop/DragonPoints 2/DragonPoints/JudgeViewController.m:269:58: 'defaultRepresentation' is deprecated: first deprecated in iOS 9.0 - Use PHImageRequestOptions with the PHImageManager from the Photos framework instead


}

SDWebImage 这个应该是使用最广泛的了,自动处理图片

显示全文