
swift
星光uoin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
swift语言在tableView的cell项中的必填项后添加红色的“*”号标记
注意:本代码源于swift2.3语法,若使用swift3.0语法请自行稍作调整 在一些app中有些需要用户手动填入信息的地方但不是所有的都是必须要填写的但是有些是必须要填写的,这就要求我们要提醒用户哪些是必填的选项,往往我们的做法是在必填的选项的文字后面添加红的的“*”号来提示用户这些是必填的选项,但是在swift 中直接的来改变的一个string的字体颜色往往不是那么容易实现,i原创 2017-01-06 14:41:45 · 1206 阅读 · 0 评论 -
Swift2.0到Swift4.1代码转换中的一些语法改变总结
最近因为项目需求需要对项目代码进行升级,从之前的swift2.0版本升级到swift4.1版本。现将升级过程中遇到的一些语法变化与大家分享一下,希望会对大家有所帮助,Swift 2.0 --> Swift 4.01.self.edgesForExtendedLayout = UIRectEdge.None --> self.edgesForExtendedLayout = UI...原创 2018-06-20 14:49:13 · 1396 阅读 · 0 评论 -
关于iOS使用个推来实现消息推送时出现ld: framework not found FileProvider错误的处理
按照个推的官方文档配置项目时候,出现了如下报错:ld: framework not found FileProvider for architecture armv7clang: error: linker command failed with exit code 1 (use -v to see invocation)找了整个项目都没有发现哪里使用了FileProvider这个基本...原创 2018-08-13 10:32:38 · 1703 阅读 · 0 评论 -
Swift开发中如何在UIView中直接实现页面跳转(即如何在子视图中获取其父视图控制器的方法)
在Swift的开发中,实现页面之间的跳转我们都是通过在UIViewController来实现其push方法或者present方法来跳转页面的(即控制器之间的跳转切换),但是往往在开发中我们经常会使用MVC的架构来将页面进行模块化的封装,那么问题来了,我们在将页面模块化成一个一个的UIView的模块时候,往往会在UIView或tableViewCell中的一些例如imageView,l...原创 2018-08-30 23:54:31 · 1874 阅读 · 0 评论 -
Swift关闭textfield键盘的两种方法
在swift开发中我们往往会用到UITextField这个控件,当点击textfield的时候系统会自动弹出键盘,那么往往我们需要在点击空白或者别的地方的时候来让键盘关闭,那么如何实现呢,方法很简单,下面直接代码介绍关闭键盘的两种方法:方法一: textField.resignFirstResponder() //该方法是使其失去第一响应者的方法方法二:...原创 2018-09-05 15:37:17 · 4411 阅读 · 0 评论 -
关于Xcode控制台一直输出Status bar could not find cached time string image. Rendering in-process. 的解决方案
最近在Xcode9.4.1版本上新建Swift项目时,发现在新建完项目后,运行时会发现控制台会隔一段时间弹出一句Status bar could not find cached time string image. Rendering in-process.说是状态栏在进程渲染无法找到缓存的问题,在网上查了一些资料说是项目中用到了[[UIApplication sharedApplicat...原创 2018-09-07 14:25:32 · 5155 阅读 · 0 评论 -
Swift通过正则表达式获取匹配的APP版本号
需求:后台判断当前版本来通知前台弹出更新app提示。实现:获取当前版本号,传入后台,通过后台返回来实现弹框。因为app在发布测试时为区分不同服务器版本,版本号会出现例如 1.0.0.0-test、1.0.0.0-formal 等等格式的字符串,正式release时只能是3位版本号 1.0.0。而后台的检测又是必须要传入4位纯数字版本号(1.0.0.0),所以需要由前台来做处理。当为测试...原创 2019-03-08 17:45:26 · 691 阅读 · 0 评论 -
Swift4.2 实现长按WebView中的图片保存到相册
最近项目中需求需要保存webview中的图片,通过长按来实现弹出提示保存。具体实现如下:注意由于该功能需要往相册存图片,所以需要相册的写权限。需在plist文件中加入Privacy - Photo Library Additions Usage Description 键值对。func addLongPressGes() { //添加长按手势 let...原创 2019-03-14 16:35:01 · 762 阅读 · 0 评论 -
Swift 自定义UISegmentedControl
在项目需求中需要实现如下UI效果(背景色自定义,并且去除segmentcontrol中间的分割线及边框颜色): 实现代码如下:import UIKitclass ViewController: UIViewController { override func viewDidLoad() { ...原创 2019-03-12 10:27:25 · 3063 阅读 · 0 评论 -
Swift4.2 计算两个日期之间的时间间隔多少天
由于最近项目需求,需要计算时间的柱壮图进度,通过开始时间,当前时间,完成时间来求取时间进度。思路:通过获取开始时间天数,然后获取完成时间天数和当前时间天数(iOS时间是从1970年还是计数的) 与之相减,然后再计算进度比例进行显示。那么需要获取开始时间与完成时间,当前时间与完成时间之间的时间间隔。主要是使用NSCalendar的dateComponents来实现的:NSCalenda...原创 2019-03-12 13:53:18 · 3385 阅读 · 0 评论 -
Swift 实现数组中的某个元素置顶
最近项目需求中需要拿到一个list中的某个id 然后将这个id所对应的数据在tableView中置顶。实现思路:方法一:首先遍历数组找到这个id所对应的dictionary存下来,然后在已经delete该id所对应dictionary的数组中将该id所对应的dictionary插入到数组的第一位。具体实现代码如下: let datas = ["aa","b","cccc...原创 2019-03-18 17:44:43 · 3160 阅读 · 0 评论 -
RxSwift 实现点击页面任意位置收起键盘
在iOS开发中我们经常需要实现收起键盘操作,一般是在点击页面的空白处收起键盘,常用有两种方法:在代理方法中实现:override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { textFiled.resignFirstResponder() //方法一 se...原创 2019-04-15 12:27:37 · 1343 阅读 · 0 评论 -
Swift4.0 将状态栏的颜色变为白色
由于最近开发中需要将项目的导航栏设置成黑色,所以需要将状态栏的颜色全部都设置成为白色,看了很久都是使用代码来设置,但是按照 UIApplication.shared.statusBarStyle = .lightContent 该方法设置的并没有效果,于是找了很久终于找的了一个很简单的方法,不需要写代码,只需要在info.plist文件中设置就可以了。首先在info.plist文件中将添加...原创 2018-05-30 15:42:41 · 3025 阅读 · 0 评论 -
关于ios11之后使用setBackButtonTitlePositionAdjustment属性后出现导航栏返回按钮下移的解决方法(swift4.1语法)
由于在项目中的需求是要隐藏导航拦返回按钮右边的title,故使用setBackButtonTitlePositionAdjustment属性设置导航栏的全局返回按钮通过改变position的偏移位置来将返回的标题显示在界面之外来实现隐藏,代码如下:UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffset.i...原创 2018-06-12 15:15:39 · 4096 阅读 · 0 评论 -
ios 国际化使用多国语言(Swift)
在写ios的app时候,有时候需要自己的app能用使用多个地域,这就需要我们的app能够自动的适配语言,根据手机的语言设置,英文的时候显示英文,中文的时候显示中文。本文我将向大家介绍以下如何在code中设置多国语言的切换。话不多说直接上图。1.首先先新建一个文件如图在Resource中点击Strings File 然后将文件名命名为Localizable.strin原创 2017-06-06 19:41:49 · 1983 阅读 · 0 评论 -
如何在代码中记Log(swift语言)
如何在代码中记Log (swift语法)在我们做代码调试时可以在Xcode的控制台上打印输出,也可以在代码中写一个log文件来记录,然后在 运行完代码后可以再log.txt的文件中来看刚才记录的log中所打印的输出中是否运行了某个函数,便可以 看出程序是在那个地方出的问题 下面便是已经封装好的代码程序:func Log<T>(message:T, file:String = #file原创 2017-01-16 10:12:35 · 491 阅读 · 0 评论 -
ios中判断textView中的内容是否为空和去掉空字符的方法 以及swift的for循环
ios中判断textView中的内容是否为空在ios的开发中往往需要去判断在textView的框中填入的数据是否是空的或者是否都是空格的问题,下面以 swift的语法为例讲解一个判断的方法//方法一if self.titleValue.text?.StringByTrimmingCharactersInSet(NScharacterSet.WhiteSpaceCharac-terSet原创 2017-01-16 18:27:17 · 2642 阅读 · 0 评论 -
swift使用谷歌地图实现定位
swift使用谷歌地图实现定位在国内app中虽然使用Google map的比较少,但在一些应用中需要获取国外的地址之类的往往就需要使用到 谷歌地图,例如携程旅行中就有用到。下面主要是介绍使用谷歌地图定位的用法,具体的方法可以参考这里 下面的方法也是参考这篇文章来写的,只是就里面的一些代码的swift版本的原因做的一些就自己的swift版本 的修改,下面使用的是swift2.3。首先要实现定原创 2017-01-26 10:46:04 · 1755 阅读 · 0 评论 -
swift开发中的一些小方法
swift开发中的一些小方法swift使用延时func delay(delay:Double,closure:()->()){ dispath_after( dispath_time( DISPATCH_TIME_NOW, Int64 (delay * Double CNSEC_PER_SE()) ),原创 2017-03-09 16:35:52 · 508 阅读 · 0 评论 -
关于Xcode中无法显示全部文件的问题
在Xcode的使用中有时候为了更加快速的在git上上传代码,特别是在PC机上上传ios代码时候,由于git的版本问题在mac电脑上无法使用git,就需要讲代码拷贝到PC机上再上传。往往在这个过程中不会每次都将整个代码都copy一份,而是将改动过的文件或者添加的文件直接加到PC代码的文件目录下面再上传。(在整体拷贝的过程中会出现很多的隐藏文件,而这些的文件一般是没有什么作用的) 那么再把更改好的代码原创 2017-04-19 19:51:32 · 2127 阅读 · 0 评论 -
Swift使用Alamofire上传图片等FormData表单文件的方法
在使用Alamofire这个swift的第三方http请求长传时,一般都是上传一些基本的String等类型的数据,但是在大多数的app中往往需要上传一些例如图片等等的文件,同时需要获取它的success请求成功后的返回值,在这里来给大家介绍一种使用Alamofire上传图片文件的方法。废话不多说,直接上代码:Alamofire.upload(.POST, URL, multipartFormD原创 2017-04-20 18:18:04 · 9786 阅读 · 2 评论 -
swift textView出现越界的exception
在使用textView这个控件时候需要有时候会出现越界的提示如下:requesting caretRectForPosition: while the NSTextStorage has oustanding changes{520,4}对于这个报错我发现自己的code对字数的限制并没有问题,而且断点无法跟到具体的越界位置,代理方法都走完了之后才出现问题,并且把所有的代理方法都给注释掉原创 2017-05-11 11:00:30 · 753 阅读 · 0 评论 -
swift压缩图片的方法
在项目中往往很多时候需要实现上传图片,但在对多张图片进行上传时往往会出现内存警告的问题,(当第二次警告时候app就会闪退)这是由于ios默认只给20M的内存。所以要解决这个问题就需要对图片进行压缩上传,下面是我封装的一个压缩图片的方法:static func zipImage(currentImage: UIImage,scaleSize:CGFloat,percent: CGFloat) -原创 2017-04-24 16:10:32 · 1975 阅读 · 0 评论 -
swift将json数据转换成NSDictionary
swift在使用过Alamofire进行解析的时候,有时候并不会直接解析出数据,而是一些json格式的String。例如:{"name":"zhangsan","age":"12"} 这种类型的数据,这是一个Dictionary类型的数据,但是无法直接强转为NSDictionary类型,因为这只是一个json的String数据,需要对其进行json数据转换。具体转换的代码如下:let draf原创 2017-04-25 09:22:50 · 1795 阅读 · 0 评论 -
swift 关于背景图片的拉伸与平铺
在ios开发中很多的地方都会需要我们添加背景图片,下面是添加背景图片的方法:一般的情况下我们往往是通过backgroundImage属性来设置背景图片,但是在有的View中没有backgroundImage这个属性,这时候我们可以通过backgroundColor这个属性来添加背景图,具体方法如下:例如:reusableViews.backgroundColor = UIColor(p原创 2017-05-09 11:17:42 · 3899 阅读 · 0 评论 -
swift封装一个继承UILabel的红色小圆圈用来显示消息的个数
在app中往往会需要去显示一些通知的信息的个数,往往是在图标上面加一个红色的小圆圈,然后在上面动态的显示在消息的个数,就像微信中提示信息的个数一样。效果图如下: 现将如图红色圆圈的中的数字显示样式封装如下:import UIKitclass Info: UILabel { var defaultInsets = CGSize(width: 2, heigh原创 2017-04-27 16:11:45 · 893 阅读 · 0 评论 -
Swift UILabel高度自适应 (UILabel高度和宽度随文本的字数动态适应时,UILabel上下部分会留白无法填充满的问题解决方案)
在项目中使用UILabel时通常需要实现高度自适应,方法就是先计算文本字体的数目然后去计算需要的高度:方法如下:let label = UILabel()label.backgroundColor = UIColor.graylabel.text = "testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttestte...原创 2019-04-23 11:00:11 · 3403 阅读 · 0 评论