自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yimiyangguang的专栏

知无不言,言无不尽,关注原创,关注追夢秋陽

  • 博客(117)
  • 资源 (4)
  • 收藏
  • 关注

原创 IOS 常用工具类方法(OC版本)

//MARK: - 视图设置/**! * 设置视图阴影 * * @para uView UIView 目标视图 * @para shadowColor UIColor 阴影颜色 * @para shadowOpacity Float 阴影透明度(0.0 ~ 1.0,默认0.5) * @para shadowRadius CGFloat 阴影半径(默认3) * ...

2019-02-14 16:09:48 1808 1

原创 iOS 借助DSYMTools工具定位到闪退的具体行数和方法名

iOS 借助DSYMTools工具定位到闪退的具体行数和方法名

2023-12-14 15:39:39 133

原创 iOS ApplePay 支付汇总一二

iOS ApplePay 支付汇总一二

2023-12-11 12:04:31 105

原创 XCode15与iOS17/17.1 真机测试问题处理

XCode15与iOS17/17.1 真机测试问题处理

2023-10-18 19:31:35 3807

原创 YYAnimatedImageView 加载GIF 不能重复播放,播放一次就结束了

YYAnimatedImage 协议提供一个方法(animatedImageLoopCount)获取循环模式 0 循环播放,默认1 播放一次,YYImage,YYFrameImage等都遵循该方法,但该方法只读,因此只要设置改属性为0,即可循环播放。关于使用YYAnimatedImageView 加载动画,可参考 博客。本文主要介绍,无法重复播放的问题。

2023-08-21 15:52:54 563

原创 ZFPlayer iOS16 系统横屏全屏问题处理

【代码】ZFPlayer iOS16 系统横屏全屏问题处理。

2022-11-02 19:33:18 3574

原创 iOS16 UITableViewCell 宽度异常右边空白的问题处理

经测试观察,在iOS16系统设备中,自定义的UITableViewCell 宽度在设备横屏模式下,右边空白的异常,而在其他系统和iOS16 竖屏下,都正常。设置UITabelView的约束或者直接指定frame 尺寸都解决不了。经过模拟器上观察发现是UITableViewCell 的 contentView 的宽度比实际的 cell 的宽度要少造成,而实际内容的添加都加在 contentView 上。

2022-10-27 11:19:52 987

原创 iOS 移除所有Html 标签的参考

通过正则介绍移除文本中所有的Html标签

2022-10-11 11:34:39 328

原创 iOS界面操作指引的实现参考

实现该功能有多个思路,本文中主要介绍的是将遮罩、镂空区域以及下一步、跳过等元素动态处理而非切整张图的形式来实现,优点是:减少包的大小以及使用代码动态适配定位需要指引的栏目,支持多界面滚动定位指引。缺点,如果界面很长,需要指引的栏目在可见区域之外,此时处理会稍微麻烦(详见文中代码注释,此处有很大改进空间)。经模拟器上不同设备及系统(iPhoneSE一代、iPhoneXs、iPhoneXR、iPhone6/7/8Plus)上测试,效果有出入,基本偏差在可接受范围内,有其他高见欢迎留言拍砖。...........

2022-08-26 10:29:34 425

原创 ZFPlayer 播放器调用addPlayerViewToSmallFloatView开小窗播放样式错误以及无法关闭处理

ZFPlayer 播放器调用addPlayerViewToSmallFloatView开小窗播放样式错误以及无法关闭处理

2022-04-22 17:12:17 707

原创 Swift 使用NSSetUncaughtExceptionHandler 实现异常捕获及日志上传和app 起死回生

App 闪退对于开发人员来说比较头疼,对异常的捕获和定位,以便快速修复Bug 非常考验一个人的功底。对于iOS系统来说通过使用Runtime 和 扩展 来处理异常并友好的提示不让其闪退是不错的选择,但是比较繁琐。好在系统提供了一个 NSSetUncaughtExceptionHandler api 能捕获所有异常。今天主要介绍该函数在Swift 中的使用。先看下效果图:1、定义异常捕获及处理的相关方法。本代码参考了https://github.com/lbwxly/CrashH...

2022-02-14 15:19:11 2561 5

原创 Swift 实现全屏水印的参考

本文主要讨论的是给图片或者视图添加全屏水印。比较常见的是添加单个水印,这个比较好处理,网络上也有很多参考的方法。本文实现的是铺满的全屏水印

2021-12-10 11:51:11 2862 2

原创 七牛云图片在iOS和微信里面不显示问题处理

最近在开发iOS项目时,采用原生+VUE开发的H5,图片存储在七牛云中。在PC浏览器和安卓那边以及大部分iOS设备图片显示正常,而在部分手机iPhone6Plus(系统:iOS 12.5.4)中不显示,手机自带苹果浏览器以及微信里面都不显示,只有一个空的图片框,如下图:不显示的问题图片地址类似这样的:http://img-qiniu-test.shlingzhang.com/news/2021/08/25/f2d1e1d1-eafe-4bb8-b570-a1a9d5bf85d6.jpg?imageV

2021-08-27 19:56:01 980

原创 Alamofire5 设置请求超时时间

Alamofire5为最新版本,是Swift语言开发的网络请求库,功能非常强大,支持链式语法,很优雅。相关参考资料:[Alamofire 5 的使用 - 基本用法](https://www.jianshu.com/p/4381fe8e10b6),[Alamofire官网](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md)。本文主要介绍了设置请求超时时间的两种方法: 方法一,通过 requestMo...

2021-06-18 09:41:44 1762

原创 iOS 使用 Charts 库实现分时、K线及指标

Charts 是IOS中比较强大的图表开源库,支持多种图表,具体可参考官网:https://github.com/danielgindi/Charts

2021-06-13 22:23:13 5664 21

原创 iOS 微信和QQ分享显示“未验证应用”问题处理(尤其是Swift 中 continueUserActivity 不执行问题)

由于在iOS13引入了UniversalLink导致微信好友、朋友圈分享时显示为验证引用。而且该问题会反反复复出现,很是头疼。最终得以经解决,现将过程和思路以及部分参考代码列出如下,供参考

2021-06-02 15:02:12 4451 1

原创 iOS开发漫话WKWebView之给H5网页图片添加点击事件以实现原生图片预览

这是漫画WKWebView的续篇。在此文中主要是实现给WKWebView 注入Js实现点击图片预览的需求。话不多说先看下成品效果:实现这个需求无疑就是实现Js与WKWebView交互操作,包括传值和相互调用。这个话题网络上有成堆的文章来介绍,本文中只用到了很少的一部分即:注入Js动态给img添加点击事件向WKWebView传值,原生响应事件获取参数来实现预览,落脚点是传值。整理下思路,app中可以使用Scheme、请求拦截和 JavaScriptCore以及WKScriptMessageH...

2021-03-10 19:34:42 1270

原创 iOS开发漫话WKWebView之动态获取网页高度

iOS开发漫画WKWebView之动态获取网页高度 最近在项目开发中遇到一个需求,一篇文章顶部的分析师信息以及底部的评论和回复以及文本框信息采用原生展示,中间的主体内容采用Vue框架做的H5展示。这里里面唯一的遇到的问题就是动态计算H5网页的高度,使得页面整体如一,不会有手势冲突。整体效果如下图:经过搜索资料整理,基本有两种思路,一是通过在didFinish里面注入Js脚本获取页面的scrollHeight,二是通过iOS的KVO模式监听contentSize的值(也有注入Js来监...

2021-03-10 17:42:24 1410 4

原创 AppCan Hybrid 跨平台混合开发之天气预报

AppCan Hybrid 跨平台混合开发之天气预报 之前做iOS移动开发好几年,客观的说原生App 开发在加载效率和用户操作体验上确实比混合开发有先天的优势。但同时开发、学习成本也很高,适配也非常棘手。经过对比Flutter、React N...

2020-12-23 15:05:44 192

原创 Alamofire4 PUT、POSTbody传参以及实现Oauth2认证

Alamofire是原AFNetworking团队针对Swift语言封装的网络请求库,相较于AF基本不存在内存泄漏的问题。最新版是Alamofire5最低支持系统为iOS10,具体可参考文章:Alamofire 5 的使用 - 基本用法。针对AF框架存在的内存泄漏解决方案,博客园有很多文章,尤其是文件、图片上传导致的内存泄漏。具体可参考:[AFHTTPSessionManager m...

2020-05-06 10:59:07 1937

原创 实现两个UITableView垂直同步滑动,右边列表水平滑动,左边固定

两个UITableView垂直同步滑动,并且右边的列表能水平滑动,左边固定只能上下滑动,这个需求不常见。多见于了财经App中,左边是固定的行情名称和code,右边则有很多相关的信息展示,比如:当前值,开盘价、最高价、最低价、昨收价、收盘价、涨跌、涨跌幅等。经过构思,大致分析如下:1、左边是UITableView,与当前设备的同宽高。实际只展示一列数据,比如:美元USD2、通过addSubV...

2019-11-24 20:18:54 646

原创 AFNetworking 实现 OAuth 网络请求

关于OAuth 开放授权常用在获取身份认证和授权令牌token 获取等场景,关于OAuth更权威具体的知识介绍可参考网络资源了解。本文主要介绍了在Swift中使用AFNetworking 网络请求组件,进行OAuth请求。具体参考代码如下:/// OAuth 网络请求/// https://www.cnblogs.com/cui-cui/p/7107982.html/// - Param...

2019-10-23 14:48:13 220

原创 Swift 使用NSRange 查找字符多次出现的位置处理

NSRange是个使用频率比较高的对象,尤其是在设置富文本(AttributedString)的地方。自带的rangeOfString 就可以查找某字符所在字符串中的位置。但如果要获取多次出现的位置信息就需要另辟蹊径了。如下代码实现了,获取多次出现的位置信息的方法,参考如下: /// 获取字符出现的位置信息(支持多次位置获取) /// - Parameter string: ...

2019-10-11 12:22:17 2607 1

原创 UICollectionView 水平滚动导致 section 和 cell 不能纵向布局的问题处理

UICollectionView 水平滚动导致 section 和 cell 不能纵向布局的问题处理 今天是节前最后一天,明天就是祖国70华诞,写篇博客预祝祖国国泰民安,繁荣昌盛。今天要和大家分享的问题是 当 UICollectionView 的UICollectionViewLayout 的滑动方向指定为 水平滚动(horizontal)时 导致Section...

2019-09-30 14:29:33 806

原创 IOS 保存图片、视频到自定义相簿

网上有很多文章介绍了保存的图片和视频的到相簿的,几经对比和测试,效果都不如人意。经过实测和取长补短,现将重构后的参考实例粘贴如下,仅供学习和参考:1、检测相簿以及创建相簿:/** 创建自定义相册 */+(void)isExistFolder:(NSString * _Nonnull)folderName andBackaction:(void(^ _Nullable)(P...

2019-06-23 15:19:30 1057

原创 面试编程题

1、100块钱买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只,各买多少只鸡?#region 买鸡编程(不能解方程)/// <summary>/// 买鸡编程(不能解方程)/// </summary>public void buyChook(){ //公鸡数量 for (int a = 0, aLen = 100 / 5; a <= aLen...

2019-05-02 16:34:02 175 1

原创 支持ObjC的Swift版 UILable文本数值变化效果

AnimatingLabel.swift 一种UILable 文本数值变化效果,强大简单实用。具体文件参考如下:import Foundationimport UIKitpublic protocol TextContainable: class { var text: String? { get set }}public protocol DigitAnimatable...

2019-03-20 12:04:01 442

原创 ObjC贝塞尔曲线实现渐变带动画的信用圆环

ObjC贝塞尔曲线实现渐变带动画的信用圆环,参考示例代码:WangCreditView.h:#import &lt;UIKit/UIKit.h&gt;NS_ASSUME_NONNULL_BEGIN/** * 信用圆环 */@interface WangCreditView : UIView/** 当前显示的值(以及刻度值) */@property(nonatomic,...

2019-02-22 17:45:32 282

原创 Swift版国内省市县三级联动

1、引入数据模型 CountryCityModel.swift如下文件为省市县最新数据Model,使用的struct 结构体处理,比类的内存占用更小:import Foundation/** * 国家、省份、城市数据模型 */struct CountryCityModel { //MARK: - proterty /** 当前国家 */ sta...

2019-02-18 17:40:30 1538

原创 极光IM即时通讯初探

最近项目里需要添加IM通讯功能,初期负责人说要使用极光IM,一段折磨期就此开始了。个人之前用过腾讯IM、融云、环信等,这是第一次使用极光IM。说实话极光这个IM确实需要改进的地方很多,不吐不快:1、集成不方便,没有自带的UI组件,对于想快速实现IM聊天功能的需要谨慎选择。后来经过查找资料发现网上有一套通用的IM UI组件即Aurora IMUI,据说也是极光公司的,兼容极光IM,即便如此集成...

2019-01-15 18:57:33 8268 5

原创 面试算法摘要(Ⅱ)

常见数组排序:快速排序、冒泡排序、选择排序等/// &lt;summary&gt; /// 数组排序算法 /// &lt;/summary&gt; class MechanismSort { #region 冒泡排序 /// &lt;summary&gt; /// 冒泡排序 /// 原理:比较相邻的元素,根据要交换其位置 /// 参考:https://baike....

2018-12-03 10:11:29 372

原创 面试算法摘要(Ⅰ)

如何实现一个数组每个元素依次向右移动k位。(后头的往前面补) 比如: [1, 2, 3, 4, 5] 挪两位变成[4, 5, 1, 2, 3]?​​​​​​​​​​​​​​/// &lt;summary&gt; /// 数组移动算法 /// &lt;/summary&gt; class MechanismMove { #region 数组依次右移算法 /// &lt;summ...

2018-12-03 10:01:37 233

原创 融云IM-IOS版 会话列表删除最后一条信息时闪退

由于开发电商App需要客服的功能,临时使用了融云IM,基本上解决了有无问题。测试时发现会话列表(RCConversationListViewController)当侧滑删除最后一条会话时,程序崩溃闪退。异常信息如下:打客服电话,提交工单来回踢皮球,问题依然没解决。升级到最新版2.9.7同样存在,客服反馈他们的Demo 没问题。可官方Demo下载无法运行,说法已无法考证。万般无奈只有自己想办...

2018-11-15 21:06:00 600

原创 检测UILable中的文本给电话号码加上下划线并添加拨打电话事件

检测UILable中的文本给电话号码加上下划线并添加拨打电话事件,这种需求在显示物流信息时经常遇到,具体参考代码如下所示:/** 设置信息,检测是否有有手机号。有则添加拨打电话事件 */ func setTextInfoToPhone(labInfo:UILabel,WithText text:String){ let stringRange:NSRange = ...

2018-11-01 10:54:31 913

原创 调用相册UIImagePickerController报错 Error Domain=PlugInKit Code=13 的处理

      最近将Swift4 升级到最新的 Swift4.2,发现了一些问题,其中就包括 调用相册及拍照 UIImagePickerControllerDelegate 委托不执行,导致获取不到选中的图片并且报如下错误:[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Co...

2018-10-16 19:37:15 4964

原创 Swift 异步加载回调 callBack 实现

异步加载是我们经常使用的方法,不仅能够提高执行效率,而且用户体验也大大提高。由于是异步执行,得到的结果时机是未知的,不能直接使用 return 来返回得到的结果。在这种情形下我们可以使用 Protocol 关键字声明一个协议(委托)通过这个处理,还有一种就是使用 callback。从使用方便性来说,个人偏好后者

2017-11-02 19:16:53 3995

原创 Swift 常用方法总结

Swift 常用方法总结1、设置AttributeStringText //MARK: - 设置富文本 func setAttributeStringText(strFullText:String, andFullTextFont textFont:UIFont, andFullTextColor textColor:UIColor, withChangeText changeText...

2017-08-12 21:13:04 779

原创 IOS 图片滤镜效果处理

IOS 图片彩色滤镜效果、高斯模糊等效果处理

2017-06-01 11:01:00 1032

原创 史上最全canOpenURL: failed问题解决办法

由于苹果在IOS9.0开始规定在App中使用Https协议与服务器进行数据交互,导致很多原本正常的功能,莫名的就崩掉了。查看控制台 就会看到各种错误提示,例如:-canOpenURL: failed for URL: "weixin://" - error:This app is not allowed to query for scheme weixin" ,canOpenURL: failed for URL: "wechat://" - error:This app is not allowed to

2017-05-25 21:28:57 21260 2

原创 IOS 调用WebService 实现图片上传处理的解决办法

IOS 图像上传,包括多图上传等是比较常见的需求。由于服务端使用的编程语言不同,具体实现也有不同。本文主要介绍了 IOS中通过Webservice(C# 语言)实现图片上传。

2017-05-12 14:51:09 700

Swift5 Charts开源库制作的股票行情图

Swift5 + Charts 股票行情图

2021-07-26

WP8日历 APP

<!-- 日历内容 --> <Grid Name="gCalendar" Background="Gray" Width="480" Height="615"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> <RowDefinition Height="*" /> <RowDefinition Height="*" /> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> </Grid>

2014-04-20

WP8模拟时钟

精美的WindowsPhone8 模拟时钟

2014-03-27

WindowsPhone8 天气播报

WP8根据IP获取当前城市 WP8操作Webservice 根据城市名 获取三天天气信息以及该城市的人文、历史等信息介绍

2014-02-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除