
Swift
文章平均质量分 59
BubuxingBala
这个作者很懒,什么都没留下…
展开
-
蛇和梯子游戏,分别用oc和swift开发
蛇和梯子游戏,分别用oc和swift开发心血来潮想学学swift,看了一下教程和开发文档,发现其实swift的很多类都是基于oc的,比如swift的UIButton是基于oc的UIButton。所以我想其实学过oc再学swift并不是像学新语言一样难,只是把一种方言翻译成另一种方言而已。基于这个思路我试着写了一个oc的蛇和梯子的游戏,然后再一句一句翻译成swift,竟然成功了,仰天大笑先介绍一下这...原创 2018-04-18 14:22:06 · 1199 阅读 · 0 评论 -
根据经纬度计算距离 Swift
func getDistance(lat1:Double,lng1:Double,lat2:Double,lng2:Double) -> Double { let EARTH_RADIUS:Double = 6378137.0 let radLat1:Double = self.radian(d: lat1) let ...原创 2019-03-13 14:21:36 · 1081 阅读 · 1 评论 -
根据颜色生成图片 Swift
func imageFromColor(color: UIColor, viewSize: CGSize) -> UIImage{ let rect: CGRect = CGRect(x: 0, y: 0, width: viewSize.width, height: viewSize.height) UIGraphicsBeginI...原创 2019-03-13 14:23:29 · 1366 阅读 · 0 评论 -
时间戳和字符串之间转换 Swift
//时间戳转成字符串 func timeIntervalChangeToTimeStr(timeInterval:TimeInterval, dateFormat:String?) -> String { let date:NSDate = NSDate.init(timeIntervalSince1970: timeInterval/1000) ...原创 2019-03-13 14:29:13 · 3288 阅读 · 0 评论 -
MD5加密 Swift
func md5String(str:String) -> String{ let cStr = str.cString(using: String.Encoding.utf8); let buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: 16) CC_MD5(...原创 2019-03-13 14:31:05 · 255 阅读 · 0 评论 -
环形加载动画 小菊花 Swift
用UIActivityIndicatorView类实现: let activityView = UIActivityIndicatorView() activityView.center = CGPoint(x: self.view.center.x, y: self.view.center.y-NavigationHeight) // 停止...原创 2019-03-13 15:18:46 · 1670 阅读 · 0 评论 -
用元祖实现多个方法返回值 Swift
get到一个很好用的数据格式:元祖元祖可以像Array一样将多个值放在一个集合里 元祖可以保存不同的数据类型 元祖在创建时就要指定好内部元素 元祖创建后不可修改基于上述特点,用元祖实现方法的多个返回值再合适不过,能很好保证返回值的安全有效性。实例如下,实现了字符串截取: func yuanzuTest(str: String, findStr: String) ->...原创 2019-03-13 15:49:08 · 1413 阅读 · 0 评论 -
自定义UITabBarController Swift
import UIKitclass TabBarViewController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() self.tabBar.backgroundColor = UIColor.white self.tabBar....原创 2019-03-13 16:35:17 · 481 阅读 · 0 评论 -
播放音频文件 Swift
引入AVFoundation库import AVFoundation创建AVAudioPlayer实例var audioPlayer:AVAudioPlayer = AVAudioPlayer()将文件放在工程项目里实现方法 func playAlarmVoiceAction() { let session = AVAudioSession....原创 2019-03-26 09:36:00 · 1684 阅读 · 0 评论 -
播放音频文件报错NSOSStatusErrorDomain Swift
在调试播放音频文件的时候报错Open failedError Domain=NSOSStatusErrorDomain Code=1685348671 "(null)"试了各种方法后发现是音频文件有问题,mp3文件要源文件不能转。另外附上播放音频文件的方法,请参考:https://mp.youkuaiyun.com/postedit/88812761...原创 2019-03-26 09:51:12 · 2713 阅读 · 0 评论 -
UIDatePicker使用 Swift
定义变量var datePickerView = UIDatePicker()var selectDateValue = ""//选中的Date,String类型创建UIDatePickerlet y = 84*HeightRatedatePickerView = UIDatePicker(frame: CGRect(x: 0, y: y, width: datePickerB...原创 2019-03-26 10:01:07 · 333 阅读 · 0 评论 -
保存图片、视频到手机相册 Swift
引入Photos库import Photos保存图片到相册 //图片路径 let doucmentDir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.us...原创 2019-03-26 10:21:50 · 1741 阅读 · 0 评论 -
Swift项目使用Objective-C的sdk
以海康威视移动端视频SDK为例将SDK包“HikVideoPlayer.framework”拖入项目中 在“项目名-Bridging-Header.h”文件中引入SDK头文件#import <HikVideoPlayer/HVPConfigure.h>#import <HikVideoPlayer/HVPError.h>#import <HikVideo...原创 2019-03-26 10:49:05 · 1180 阅读 · 0 评论 -
根据秒数转为时分秒显示 Swift
通常在录像时需要显示录了多久,可以设定一个Timer计时器数秒,再把秒数转换为时间显示 @objc func showRecodeTime() { recordTimeNum += 1 var str = "" var num = recordTimeNum if num > 3599 { ...原创 2019-03-26 10:53:54 · 1098 阅读 · 0 评论 -
苹果LaunchImage启动页尺寸
Portrait iOS 12+iPhone Xs Max 1242 × 2688 iPhone XR 828× 1792Landscape iOS 12+iPhone Xs Max 2688 × 1242 iPhone XR ...原创 2019-04-04 10:27:36 · 1125 阅读 · 0 评论 -
苹果设置启动页
打开Assets.xcassets文件夹 新建Launch Image文件夹把启动页图片放进去,尺寸参考https://blog.youkuaiyun.com/weixin_42012181/article/details/89011391 打开工程设置App Icons and Launch ImagesLaunch Images Sourc设置为刚才新建的LaunchImage Launch...原创 2019-04-04 11:12:00 · 355 阅读 · 0 评论 -
苹果上架因为拍照闪退被拒绝 Swift
最近用Swift写了一个App,上架上了三四次,一直说用iPad上传照片操作会crash,但是我用真机测试没有问题。这是苹果反馈的信息查来查去才发现是UIAlertController的坑。首先说一下为什么iPad真机运行不会报错。XCode里选择Product ——Scheme——Edit Scheme,Build Configuration改为Release。因为Debug模式和打出来...原创 2019-04-01 17:56:08 · 350 阅读 · 0 评论 -
对图片UIImage做指定大小的压缩处理 Swift
后台往往要求上传压缩图片,大小不能超过多少。前端就需要对手机获取的图片做处理:extension UIImage { func compressImageOnlength(maxLength: Int) -> Data? { let maxL = maxLength * 1024 * 1024 var compress:CGFloat = 0.9...原创 2019-03-13 14:19:28 · 2092 阅读 · 0 评论 -
Swift报错error: Abort trap: 6
报错:在Swift项目里用高德地图第三方框架的时候遇到报错error: Abort trap: 6解决方法:项目设置里选择Build settings -> Swift Compiler - code generation -> Optimization Level将Optimization Level设置为Optimize for Size 【-Osize】...原创 2019-03-12 13:28:30 · 4279 阅读 · 1 评论 -
网络请求第三方库AFNetworking使用 Swift
一、集成AFNetworking用CocoaPods集成AFNetworking,打开终端按下列步骤输入命令 找到项目文件夹: cd 你的项目文件路径 如果没有Podfile文件,新建Podfile文件: touch Podfile 如果有Podfile文件,打开Podfile: open -e Podfile 在P...原创 2019-03-12 10:09:19 · 396 阅读 · 0 评论 -
简单三步实现UIButton水波纹效果——swift
实现思路:重写init方法,添加点击事件 override init(frame: CGRect) { super.init(frame: frame) self.addTarget(self, action: #selector(self.touchedDown(sender:events:)), for: UIControlEvents.touchUpInsi...原创 2018-04-25 14:02:24 · 1349 阅读 · 0 评论 -
模仿支付宝支付按钮动画效果——swift
先来看看效果首先重载UIButton,重载不用写override init(frame: CGRect, backgroundColor: UIColor) { super.init(frame: frame) self.backgroundColor = backgroundColor self.setTitle("立即付款", for: UICo...原创 2018-04-25 14:35:11 · 892 阅读 · 0 评论 -
模仿爱奇艺播放暂停按钮动画效果——swift
先上效果图实现思路:重载init,画出左边线条、右边线条、三角形和圆弧图层,用layer.strokeEnd = 0隐藏三角形和弧线,初始化展示暂停按钮。圆弧作为过渡右边线和三角形使用。暂停按钮到播放按钮动画分解:左边线条缩短0.15s —> 右边线条上移0.15s —> 0.15后 —> 左线条上移0.15s —> 右线条缩短0.15s。在执行上述过程同时创建一个延时器,...原创 2018-04-25 17:01:21 · 748 阅读 · 0 评论 -
仿苹果的全局浮动按钮——swift
模仿苹果做了一个全局浮动按钮,可以拖拽,可以展开和收缩,自动靠边。实现步骤如下:1.继承自UIView,重写init方法,在init里添加点击手势和拖动手势。加到appDelegate.window!里,实现全局浮动。2.定制按钮样式,通过layer层画出五个嵌套的圆。 let layer = CAShapeLayer() layer.path = path.cgPat...原创 2018-06-13 16:30:22 · 1746 阅读 · 0 评论 -
用sizeWithAttributes()方法计算文本size Swift
最新版本Swift要这么写:原创 2018-06-29 16:04:37 · 2641 阅读 · 0 评论 -
Swift中的NSString和String比较
从OC转Swift的同学还是对NSString更熟悉,Swift也支持NSString,但NSString的很多常用方法返回的都是String类型,所以能用String还是尽量用String吧,原本String也支持一些NSString的方法,现在已经不行了。所以我认为NSString只是一个过渡选择,按照Swift更新频率,说不定很快就不支持NSString了。下面是一些NSString和Str...原创 2018-06-26 14:37:01 · 2429 阅读 · 0 评论 -
Swift简单存储和读取数据
很多时候App需要存储用户基本信息,可以避免重复调接口获取。这里记录一个非常简单的App存储、读取数据通用方法。class SaveInfo: NSObject { func writeInfo(info: Array<Dictionary<String, Any>>) { let defaults = UserDefaults.standard ...原创 2018-06-28 13:58:37 · 4385 阅读 · 0 评论 -
UITabBarController的selectedIndex属性不起作用?
今天想做一个查找的程序,找到后页面跳到内容处,发现设置了UITabBarController的selectedIndex属性不起作用。找到了原因,记录下来:UITabBarController默认显示Index=0的页面,如果要想在程序启动时就指定显示的页面,tabBar.selectedIndex一定要写在tabBar.viewControllers之后,也就是说把页面序列加进TabBarCon...原创 2018-06-28 17:42:18 · 6833 阅读 · 0 评论 -
Swift代理
举例说明,如果在自定义的View里要让页面返回上一页,view做不到只能求助于ViewController,那么就需要在View里创建一个代理,让ViewController完成代理方法。代码中红色标记为代理相关语句。1.在View中创建代理:import UIKitprotocol InputCompleteDelegate { func createNewData(data...原创 2018-08-10 11:18:27 · 716 阅读 · 0 评论 -
Swift 设置导航栏的标题和颜色
搜到的答案都是这种:self.navigationController?.navigationBar.titleTextAttributes=[NSForegroundColorAttributeName:UIColor.orange, NSFontAttributeName : UIFont.systemFont(ofSize: 25) ]但程序报错:Use of unresolve...原创 2018-08-27 15:03:20 · 3536 阅读 · 0 评论 -
iOS上架报错
最近用Application Loader上架报错:ERROR ITMS-90035: "Invalid Signature. A sealed resource is missing or invalid. The file at path [***.app/***] is not properly signed. Make sure you have signed your applica...原创 2019-01-16 09:24:37 · 1076 阅读 · 0 评论 -
CocoaPods使用 iOS
CocoaPods用来管理第三方sdk非常好用,代码简洁,sdk可以自动更新,不用替换包。下面是在项目里集成CocoaPods的方法:打开终端 找到项目文件夹 命令:cd 文件夹名新建文件 命令:touch Podfile这时候项目文件夹里面就有一个Podfile文件,打开编辑第三方库 命令:pod xxxxx然后安装第三方sdk,在终端输...原创 2019-01-16 13:43:31 · 142 阅读 · 0 评论 -
iOS打包并发布App到App Store
创建钥匙串:打开mac自带软件 钥匙串访问 —— 证书助理 —— 从证书颁发机构请求证书,存储到磁盘 创建Certificates: 登录苹果开发者网站https://developer.apple.com,选择Account,进入Certificates, Identifiers & Profiles页面 选择Certificates下的All,再点击页面右...原创 2019-01-16 17:20:49 · 462 阅读 · 0 评论 -
获取AppStore版本号 检查是否需要更新 oc/Swift
Object-C写法: //获取手机程序的版本号 NSString *ver = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; NSString *appId = @"1268501964";//在开发者账号中查看10位数 NSDi...原创 2019-03-11 17:14:36 · 2696 阅读 · 0 评论 -
极光报错:Not get deviceToken yet
Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed? or there is no APNs register code? Please refer to JPush docs.今天...原创 2019-04-16 11:54:23 · 2957 阅读 · 1 评论