iOS几款实用的工具类demo

作者: honey缘木鱼 | 来源:发表于2019-05-16 20:24 被阅读4次

    这段时间感觉自己很忙,忙着挣钱,哎!生活不易啊!言归正传,这段时间根据要求做了几个小项目,就把主要用到的点说一下,有需要的朋友,可以相互学习!

    一. 用UICollectionView左右滑动式布局

    1. 效果图: UI设计

    2.主要功能点:

    • 实现定时播放
    • 重复播放
    • 中间图片显示一定比例放大

    3.主要功能代码:

    - (NSArray<UICollectionViewLayoutAttributes *> *)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中如有疑问或问题请指出!相互学习!

    相关文章

      网友评论

        本文标题:iOS几款实用的工具类demo

        本文链接:https://www.haomeiwen.com/subject/xzywaqtx.html