快捷搜索:  as

iOS几款实用的工具类demo

这段光阴感到自己很忙,忙着挣钱,哎!生活不易啊!言归正传,这段光阴根据要求做了几个小项目,就把主要用到的点说一下,有必要的同伙,可以互相进修!

一. 用UICollectionView阁下滑动式结构

效果图:

UI设计

2.主要功能点:

实现准时播放

重复播放

中心图片显示必然比例放大年夜

3.主要功能代码:

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

NSArray *arr = [self getCopyOfAttributes:[super layoutAttributesForElementsInRect:rect]];

//屏幕中线

CGFloat centerX = self.collectionView.contentOffset.x + self.collectionView.bounds.size.width/2.0f;

//刷新cell缩放

for (UICollectionViewLayoutAttributes *attributes in arr) {

CGFloat distance = fabs(attributes.center.x - centerX);

//移动的间隔和屏幕宽度的的比例

CGFloat apartScale = distance/self.collectionView.bounds.size.width;

//把卡片移动范围固定到 -π/4到 +π/4这一个范围内

CGFloat scale = fabs(cos(apartScale * M_PI/4));

//设置cell的缩放 按照余弦函数曲线 越居中越趋近于1

attributes.transform = CGAffineTransformMakeScale(1.0, scale);

}

return arr;

}

4.demo下载地址

二.两个不合APP之间的谈天功能

1.主要功能点:

不合APP之间

实现单聊

集成容云作为第三方选择

2.主要功能实现:

我们只必要申请一套 App Key / App Secrect,供给给两个 App 应用即可。上线前,您必要在开拓者平台上填写这两个利用的包名(Bundle Identifier)即可。

设置[[RCIM sharedRCIM] setUserInfoDataSource:self];

- (void)getUserInfoWithUserId:(NSString *)userId completion:(void(^)(RCUserInfo* userInfo))completion

{}

3.demo下载地址

三.照片中翰墨识别功能

1.效果图

设计需求

2.主要功能点:

百度智能云翰墨识别OCR

裁剪,识别,分享,扭转,重置,校正等功能

3.关键代码:

//识别图片

[[AipOcrService shardService] detectWebImageFromImage:self.showImage

withOptions:nil

successHandler:_successHandler

failHandler:_failHandler];

4.demo下载地址

四.视频编辑

1.效果图

设计需求

2.主要功能点:

本地视频选择播放

裁剪,压缩,转换,弹幕等功能

3.关键代码:

//5.视频输出

self.outputURL = [NSURL fileURLWithPath: self.outPutPath];

AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:self.mixComposition presetName:self.presetName];

exporter.outputURL = self.outputURL;

exporter.videoComposition = self.videoComposition;

exporter.outputFileType = [self transOutPutFileType:fileType];

exporter.shouldOptimizeForNetworkUse = self.shouldOptimizeForNetworkUse;

[exporter exportAsynchronouslyWithCompletionHandler:^{

dispatch_async(dispatch_get_main_queue(), ^{

if (exporter.status == AVAssetExportSessionStatusCompleted) {

if (successBlock) {

successBlock(self.outputURL);

}

}else{

NSLog(@"exporter %@",exporter.error);

if (failureBlock) {

failureBlock(exporter.error);

}

}

});

}];

4.demo下载地址

以上的demo中如有疑问或问题请指出!互相进修!

您可能还会对下面的文章感兴趣: