OC 常用第三方框架使用记录二

ops/2024/11/8 21:04:39/

JPImageresizerView

录音转文字,去水印用到了镜像
#import "JPImageresizerView.h"

###裁剪图片

JPImageresizerConfigure *configure = [JPImageresizerConfigure defaultConfigureWithImage:self.orginImage make:^(JPImageresizerConfigure *configure) {// 到这里已经有了默认参数值,可以在这里另外设置你想要的参数值(使用了链式编程方式)configure.jp_frameType(JPClassicFrameType).jp_resizeWHScale(1.0).jp_gridCount(2).jp_isShowGridlinesWhenIdle(YES).jp_isShowGridlinesWhenDragging(YES).jp_contentInsets(UIEdgeInsetsMake(kAdaptedFloat(20), kAdaptedFloat(20), kAdaptedFloat(160), kAdaptedFloat(20)));
}];
self.configure = configure;JPImageresizerView *imageresizerView = [JPImageresizerView imageresizerViewWithConfigure:self.configure imageresizerIsCanRecovery:^(BOOL isCanRecovery) {} imageresizerIsPrepareToScale:^(BOOL isPrepareToScale) {}];
self.imageresizerView = imageresizerView;
[self.view addSubview:self.imageresizerView];

###裁剪视频

JPImageresizerConfigure *configure = [JPImageresizerConfigure defaultConfigureWithVideoAsset:urlAsset make:nil fixErrorBlock:nil fixStartBlock:nil fixProgressBlock:nil fixCompleteBlock:nil];

CYLTabBarController

中间加号按钮,使用项目:(黑色提词器,百宝箱)

LEEAlert

pod ‘LEEAlert’

// 输入框
// 使用一个变量接收自定义的输入框对象 以便于在其他位置调用__block UITextField *tf = nil;[LEEAlert alert].config
.LeeTitle(@"请输入邀请码")
//            .LeeContent(@"内容")
.LeeAddTextField(^(UITextField *textField) {// 这里可以进行自定义的设置if (@available(iOS 13.0, *)) {textField.textColor = [UIColor secondaryLabelColor];} else {textField.textColor = [UIColor darkGrayColor];}tf = textField; //赋值
})
.LeeAction(@"确定", ^{})
.leeShouldActionClickClose(^(NSInteger index){// 是否可以关闭回调, 当即将关闭时会被调用 根据返回值决定是否执行关闭处理// 这里演示了与输入框非空校验结合的例子BOOL result = ![tf.text isEqualToString:@""];result = index == 0 ? result : YES;return result;
})
.LeeCancelAction(@"取消", nil) // 点击事件的Block如果不需要可以传nil
.LeeShow();
WEAKSELF__block UITextField *tf = nil;[LEEAlert alert].config.LeeTitle(@"新建文件夹").LeeAddTextField(^(UITextField *textField) {// 这里可以进行自定义的设置textField.textColor = k_Color_333333;textField.placeholder = @"请输入文件夹名字";textField.jk_maxLength = 12;tf = textField; //赋值}).LeeAddAction(^(LEEAction *action) {action.title = @"取消";action.titleColor = k_Color_999999;}).LeeAddAction(^(LEEAction *action) {action.title = @"确定";action.titleColor = k_Color_themeColor;}).leeShouldActionClickClose(^(NSInteger index){// 是否可以关闭回调, 当即将关闭时会被调用 根据返回值决定是否执行关闭处理if (index == 0) {return YES;}BOOL result = ![tf.text isEqualToString:@""];if (kIsEmpty(tf.text)) {[TSWindowHudService showViewWithFailed:@"请输入文件夹名字"];return NO;}[weakSelf Jia_Shadow_AddDirectoryApiWithName:tf.text];return result;}).LeeShow();
.LeeAddAction(^(LEEAction *action) {action.title = @"确定";action.titleColor = k_Color_222222;
})

#####Swift

let alt = LEEAlert.actionsheet()let _ = alt.config.leeAction("0.5倍") { [weak self] inself?.beishu = 0.5self?.setPlayRate()}.leeAction("0.75倍") { [weak self] inself?.beishu = 0.75self?.setPlayRate()}.leeAction("1倍") { [weak self] inself?.beishu = 1.0self?.setPlayRate()}.leeAction("1.25倍") { [weak self] inself?.beishu = 1.25self?.setPlayRate()}.leeAction("1.5倍") { [weak self] inself?.beishu = 1.5self?.setPlayRate()}.leeAction("2倍") { [weak self] inself?.beishu = 2.0self?.setPlayRate()}.leeShow()

#CWCarousel轮播图

#import "CWCarousel.h"
@property (nonatomic, strong) CWCarousel *carousel;
[self.carousel mas_makeConstraints:^(MASConstraintMaker *make) {make.top.equalTo(self.view.mas_top).offset(kAdaptedFloat(20));make.left.right.equalTo(self.view);make.height.mas_equalTo(kAdaptedFloat(400));}];
- (CWCarousel *)carousel {if (!_carousel) {CWFlowLayout *flowLayout = [[CWFlowLayout alloc] initWithStyle:CWCarouselStyle_H_2];flowLayout.itemSpace_H = 10;_carousel = [[CWCarousel alloc] initWithFrame:CGRectZerodelegate:selfdatasource:selfflowLayout:flowLayout];_carousel.autoTimInterval = 2;_carousel.endless = NO;_carousel.backgroundColor = [UIColor clearColor];[_carousel registerViewClass:[MSMaterialCenterCollectionCell class] identifier:[MSMaterialCenterCollectionCell jk_className]];}return _carousel;
}
#pragma mark ------- CWCarouselDelegate -------- (NSInteger)numbersForCarousel {return self.dataArray.count;
}- (UICollectionViewCell *)viewForCarousel:(CWCarousel *)carousel indexPath:(NSIndexPath *)indexPath index:(NSInteger)index {MSMaterialCenterCollectionCell *cell = [carousel.carouselView dequeueReusableCellWithReuseIdentifier:[MSMaterialCenterCollectionCell jk_className] forIndexPath:indexPath];UIImage *codeImage = [WSLNativeScanTool createQRCodeImageWithString:[NSString stringWithFormat:@"%@%@", kShareBaseUrlString, MSService.userModel.myInviteCode] andSize:kAdaptedSize(65, 65) andBackColor:[UIColor whiteColor] andFrontColor:[UIColor blackColor] andCenterImage:nil];cell.codeImageView.image = codeImage;MaterialListModel *model = self.dataArray[index];[cell.backImageView ts_loadUrlString:model.picUrlLt.firstObject];return cell;
}- (void)CWCarousel:(CWCarousel *)carousel didSelectedAtIndex:(NSInteger)index {NSLog(@"did selected at index %ld", index);
}- (void)CWCarousel:(CWCarousel *)carousel didStartScrollAtIndex:(NSInteger)index indexPathRow:(NSInteger)indexPathRow {}- (void)CWCarousel:(CWCarousel *)carousel didEndScrollAtIndex:(NSInteger)index indexPathRow:(NSInteger)indexPathRow {self.indexPathRow = indexPathRow;
}

#YYText
####YYLabel

QXSingleYYLabelCell *cell = [QXSingleYYLabelCell cellForTableView:tableView];
UIFont *font = [UIFont systemFontOfSize:kAdaptedFloat(14)];
cell.yyLabel.textColor = k_Color_999999;
cell.yyLabel.font = font;
NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:@"通过红娘认证,即可获得专属红娘标识"];
NSMutableAttributedString *attachment = nil;
// 嵌入 UIImage
UIImage *image = kImageName(@"blinddate_v_icon");
attachment = [NSMutableAttributedString yy_attachmentStringWithContent:image contentMode:UIViewContentModeCenter attachmentSize:image.size alignToFont:font alignment:YYTextVerticalAlignmentCenter];
[text appendAttributedString:attachment];
[text appendAttributedString:[[NSAttributedString alloc] initWithString:@"以及一个专属群组"]];
cell.yyLabel.attributedText = text;
return cell;
lazy var agreeLoginLabel: YYLabel = {let agreeLoginLabel = YYLabel()agreeLoginLabel.numberOfLines = 0agreeLoginLabel.textColor = UIColor(hex: 0xABABAB)let str = "登录即表示您同意《嘎嘎靓手机商城隐私政策》及《嘎嘎靓用户协议》"agreeLoginLabel.textAlignment = .centerlet text = NSMutableAttributedString(string: str)text.yy_setTextHighlight(NSRange(location: "登录即表示您同意".count, length: "《嘎嘎靓手机商城隐私政策》".count), color: UIColor(hex: 0x4C94F7), backgroundColor: nil, tapAction: { [weak self] (_, _, _, _) inUserInfo.share.privateApi()})text.yy_setTextHighlight(NSRange(location: "登录即表示您同意《嘎嘎靓手机商城隐私政策》及".count, length: "《嘎嘎靓用户协议》".count), color: UIColor(hex: 0x4C94F7), backgroundColor: nil, tapAction: { [weak self] (_, _, _, _) inlet vc = WKWebViewController(urlSting: "\(gagaliangUrl)agreement.html")vc.title = "嘎嘎靓用户协议"self?.navigationController?.pushViewController(vc, animated: true)})text.yy_setFont(UIFont.systemFont(ofSize: 10)~, range: NSRange(location: 0, length: str.count))agreeLoginLabel.attributedText = textreturn agreeLoginLabel
}()

http://www.ppmy.cn/ops/24768.html

相关文章

【迅投qmt系列】2、历史数据获取

1、基本思想 在 xtquant 中,历史数据要先下载(download_history_data)到本地的缓存文件中,之后才能获取(get_market_data)使用。 如果确认之前已经下载过,且数据完整,那么后续使用前…

深入理解堆机制:C语言中的数据结构基础

目录 摘要: 第一章:堆的定义和特性 第二章:堆的实现和操作 第三章:堆的实际应用 技术总结: 摘要: 本文旨在深入探讨C语言中的堆机制,为C语言开发者提供关于堆数据结构的全面理解。文章首…

数据结构--栈与队列【您的关注是我创作的动力!】

文章目录 栈什么是栈?栈的具体实现 队列什么是队列?队列的实现 栈 什么是栈? 栈也是顺序表的一种,栈的逻辑实现是先进后出(后进先出)就跟子弹夹一样。 具体逻辑就是它只允许在固定的一端进行数据的插入与…

[1688]jsp工资投放管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 工资投放管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0…

LeetCode in Python 10. Regular Expression Matching (正则表达式匹配)

正则表达式匹配涉及到两个字符串的匹配问题,类似于寻找最大公共子串,可使用动态规划思想解决。重点和难点在于如何构建正确的状态转移方程。 示例: 图1 正则表达式匹配输入输出 代码: class Solution:def isMatch(self, s: st…

K8s初次入门

初步:搭建k8s集群 k8s 集群主机清单 主机名ip地址master1.50node-00011.51node-00021.52node-00031.53node-00041.54node-00051.55harbor1.30事先准备 所有的k8s集群主机卸载防火墙和禁用swap交换空间(docker、k8s建议禁用swap) 安装工具 dnf install -y kubeadm kubelet ku…

【算法每日一练】

蛮有意思的的一道题,最后要判断能否成为一种1~n的全排列,我最这样做的: 整个数组先排序一下。假设遍历到了i,那就判断前面b和r的个数,但是有想到了后面可能还会对前面的结果产生影响,所以就抛弃了这个想法…

某音a_bogus导出jsvmp加密函数到全局

记得加入我们的学习群:961566389 点击链接加入群聊:https://h5.qun.qq.com/s/62P0xwrCNO 上一篇文章我们说到s函数不是那么容易导出,但是后面分析,发现虽然他们都叫e函数,但是,每个e函数下面的_v里面的数…