
iOS
文章平均质量分 91
收获和安排
每天都有进步
这个作者很懒,什么都没留下…
展开
-
WKWebview 捕获点击事件
1.js注入:let userContent = WKUserContentController()userContent.add(self, name: "quitCourse")let jsContent = " function quit() { window.webkit.messageHandlers.quitCourse.postMessage(null);}(functi...原创 2018-09-28 13:33:27 · 11812 阅读 · 0 评论 -
MVC 模型 实践
1. 事件响应方法一定在Controller层,即使在subview中新建的控件。 gameResultView.resetButton.addTarget(self, action: #selector(resetTouched(_:)), for: .touchUpInside)2. View层就只负责UI的显示,用户手势等的响应。3.Model层负责数据逻辑,有时原创 2017-02-03 22:54:01 · 176 阅读 · 0 评论 -
opitoanal type unwarped 总结
如果报如题错误,说明你在使用一个optional的值,需要加上一个! 已表示unwraped。但是如果在一个for循环中使用了optional的值,也会同样报错,当然我想的是数组为空时不要循环了,可是必须不为空,真是郁闷。于是,只有这么处理了import UIKit@objc(LevelResponse)class LevelResponse: NSObject {原创 2017-01-23 22:18:38 · 362 阅读 · 0 评论 -
swfit 的 get 和 set 方法, willSet 和 didSet
struct Rect { var origin = Point() var size = Size() var center: Point { get { let centerX = origin.x + (size.width / 2) let centerY = origin.y + (size.height原创 2017-03-07 19:08:02 · 482 阅读 · 0 评论 -
本地通知 NotificationCenter
注册通知 NotificationCenter.default.addObserver(self, selector: #selector(addResultView(_:)), name:NSNotification.Name(rawValue:addGameResultsNotifiName), object:nil)移除通知 Notif原创 2017-02-03 22:58:35 · 230 阅读 · 0 评论 -
内存、变量 相关
1. 变量的复制操作是不会复制内存地址的,内存等于同一个地址例: class A{} a = A() let b = ab、和 a 指向同一个地址。原创 2017-03-08 19:51:02 · 199 阅读 · 0 评论 -
Implement localization swift 本地化
1. 创建Single View Application2.增加语言,点击项目target,选择你想要的语言3.添加Localizable.strings, 新建String文件,并命名为Localizable.strings。4.在Localizable.strings,文件右侧添加语言支持,添加之后会有两个文件之后开始写本地化原创 2017-03-08 20:15:34 · 391 阅读 · 0 评论 -
swift 自定义字体使用
在info.plist 中加入Fonts provided by application,写入自定义字体的xxx.ttf直接托自定义字体拖入项目即可。如何获取ttf的名字?直接双击xxx.ttf加入字体库到电脑,postScript为字体的名字。如何调用myNameLabel.font =UIFont(name: "MComicHKS-Medium",原创 2017-03-10 18:57:23 · 1681 阅读 · 0 评论 -
swift 如何使用 for(i=0;i<n;i++)
for i in 0..<results!.count{ let resultItem = results![i] as? Result let updateResultItem = Result(className: "Result", objectId: (resultItem?.objectId)!)原创 2017-03-10 19:04:52 · 1489 阅读 · 0 评论 -
storyboard 自动布局
参考文章https://www.weheartswift.com/auto-layout-101/1. 各个选项的含义Leading space to container: view左边界到容器左边界的距离Trailing Space to Container: view右边界到容器右边界的距离同理 Top space to container, 和 Bottom原创 2017-03-10 19:20:54 · 1268 阅读 · 0 评论 -
unowned self, 和 weak delegate
解除循环引用,不被释放, 必须是自己的实例属性。Swfit 3.0语法:带参数//block ,closure definetion lazy var someClosureName:(Int,String)->String = { [unowned self, weak delegate = self.delegate!] (index:Int,stringToProc原创 2017-03-07 18:45:06 · 266 阅读 · 0 评论 -
Embedded binary is not signed with the same certificate as the parent app
I face the same issue too,I solve it by this:First, I reCreate my team develop certificate(Because we renewed our root certificate)2、 edit the Iphone Apps develop certificate ,be sure include your原创 2016-12-14 09:47:06 · 375 阅读 · 0 评论 -
IOS UTF8中文字母数字 组合时长度截取
//计算总共字数和限制字数的Index位置-(NSMutableArray *) unicodeLengthOfString: (NSString *) text{ NSMutableArray *array = [NSMutableArray array]; float asciiLength = 0; NSInteger maxmumShowIndex原创 2016-12-14 09:47:03 · 307 阅读 · 0 评论 -
将业务和功能分开
功能就是功能,业务就是业务,不能将两者揉在一起,这样可以提高d代码复用率,举例:// AudioPlayer.swift// DropProjectsGame//// Created by lin kang on 17/1/29.// Copyright © 2017年 lin kang. All rights reserved.//import UIKitimpo原创 2017-02-03 22:39:24 · 843 阅读 · 0 评论 -
ios swift 图形的旋转 atan2 函数
首先要理解 反正切函数,上图来解释: 由于iphone坐标系统的原因,此图y轴向下增大。atan2(y,x) 其实求得是A点与x轴正方形的夹角。A = -2.0 rad, A' = -0.75 rad 求转过的角度 mRotate : -0.75 - (- 2.0) = 1.25 正值。 ps:(A' - A)在x轴下方也是同样正值。反之,逆时针旋转时,转过的角度为负原创 2017-01-28 20:30:58 · 2547 阅读 · 0 评论 -
swfit 实现代理 和 单例
代理实现:protocol FallingObjectDatasourceDelegate:class{ func didCollisionWithTheBallBundary(sender:FallingObjectDatasource , numberOfDisappearedBalls:Int) func didCollisionWithTheBottomBundary(原创 2017-01-24 22:48:27 · 336 阅读 · 0 评论 -
今天开始认真学习~明天计划
读书收获, 1,看书技巧:先总览,后选需要的各个击破。 2, 勿追新,基础夯实才可靠 明天安排: 1,空闲申请苹果账号。 2.加快速度学习Swift. 3.空闲时看书 中期计划 1.把之前程序上传appStore. 2.Swift写日记程序,并上传。原创 2016-12-23 00:27:36 · 364 阅读 · 0 评论 -
swift 3 函数
收获~~~标准的写法:func 函数名(Argement Label Parameter Name:类型)func testFunc(to fuck:String)->String{ print(fuck); return fuck+"xxx";}testFunc(to: "你们")省略Argument Labelfunc tes原创 2016-12-25 17:40:53 · 221 阅读 · 0 评论 -
xcode8 StoryBoard 编辑,屏幕适配
1. Choose Editor > Canvas > Show Bounds Rectangles to display an outline of everything on the scene.让控件的边框变为蓝色。2. 创建Action的时候可以选择参数类型。这样就不会为AnyObject。3.让控件居中显示,让Horizontally 和vertically原创 2016-12-27 23:57:36 · 634 阅读 · 0 评论 -
swift 请小心使用你的get方法,should be a descendant of reference view
如果你在用swift的get创建subview那么小心了,你每次使用该对象时都会重新初始化,你在其他地方相同属性代码会被覆盖。举例说明:我在这里初始化BallView var ballView:BallView{ let ballView = BallView(frame: CGRect(origin: CGPoint(x:self.center.x-40,y:self原创 2017-01-08 21:51:00 · 681 阅读 · 0 评论 -
ios layoutSubviews 使用注意
直接上代码:override func layoutSubviews() { super.layoutSubviews() let originX = (self.width-self.paddleSize.width)/2.0 let orignY = self.hight - 20-self.paddleSize.height; let原创 2017-01-11 17:08:43 · 678 阅读 · 0 评论 -
IOS 将逻辑和视图分开 代码易读性和复用性大大增加
记得之前看了一本书,[精通Objective-C设计模式].(Pro.Objective-C.Design.Patterns.for.iOS).Carlo.Chung.文字版.pdf书中再次提到一定要把View层分开,阐述了View就是接受用户事件,绘制UI界面的地方。这几天在写一个小游戏的时候,无意中在View层中加入了很多逻辑处理代码,代码的可读性简直糟糕。于是再次想到了《原创 2017-01-16 21:01:49 · 1121 阅读 · 0 评论 -
IOS COREDATA SWIFT 创建关系和新建模型类
1.新建两个entity,如图所示最方便的途径是,点击 右边三个方块图案,直接Ctrl+drag鼠标就行。创建后点击relationship,对其"Type"进行编辑,是1对多,还是1对1.最后创建Model的类,如图create NSManagedObject Subclass.这里要注意,必须将Entity的class Module,Cod原创 2017-01-18 23:19:10 · 402 阅读 · 0 评论 -
IOS SWIFT CORE DATA 储存,查询,
新建项目时,勾选使用coredata,Appdelegate中会自动添加coredata相关代码。如果之前没有勾选,那么重新拷贝过来也行,不过要在 let container =NSPersistentContainer(name: "HitList")将name更改。更改的名字为新建的model的名字。如何创建:File->new->file 选择如原创 2017-01-18 23:13:57 · 466 阅读 · 0 评论 -
打你球球 App 发布啦
经过一段时间的准备,这款娱乐小游戏终于和大家见面了。游戏仿真重力和碰撞,你玩的不是一般的球。游戏作者当然是本人啦,本人联系方式linmyfour@gamil.com,有什么想要讨论的可以通过邮件和我联系。当然此款游戏设计,还是比较简单易玩,后期将根据情况加深体验度。游戏的Icon,启动页都是自己到想办法设计出来的,没有美工能弄成这样,我也是满足了。在这里谢谢这两个月来的努力。谢原创 2017-03-01 17:55:21 · 527 阅读 · 0 评论 -
关于 cocoapods 的使用
为什么要用cocoapods ,很简单,第三方库通常需要依耐很多框架,和一些特别的xcode设置,手动添加很繁琐,因此就有了cocoapods,自动给我们的项目添加依耐。如果出现:diff: /../Podfile.lock: No such file or directorydiff: /Manifest.lock: No such file or directoryerro原创 2017-02-13 16:38:12 · 192 阅读 · 0 评论 -
object-c和swift 混编
1.创建桥接头文件,新建头文件,命名为“-Bridging-Header.h”2.在-Bridging-Header.h 中引入object-c 头文件,如 #import 但是注意了,引用之后,在swift中的使用方式也变成了,swift的语法3.设置文件索引,在build setting中,搜索 bridge ,在Object-c Bridging Header中填入-Brid原创 2017-02-13 16:49:04 · 282 阅读 · 0 评论 -
Deserialize JSON / NSDictionary to Swift objects 将JSON 或Dic转为类对象
三篇参考文章:http://stackoverflow.com/questions/24310324/deserialize-json-nsdictionary-to-swift-objects, http://swift.oz-apps.com/2015/04/creating-a-class-from-a-string-in-swift/原创 2017-01-22 18:39:35 · 887 阅读 · 0 评论 -
代码优化 为状态类写个函数
例如,某游戏有赢,输,平手,每个状态有不同背景,有不同文字提醒。如果集中在一个函数中处理,那么就要添加很多if语句,代码臃肿,且难以阅读。下面是优化前的代码: func compareSign(mySign:Sign) { let computerSign:Sign = randomSign()! let gameState = mySign.cacula原创 2017-01-02 10:30:36 · 317 阅读 · 0 评论