美文网首页
十一月第四周

十一月第四周

作者: 玉思盈蝶 | 来源:发表于2018-11-24 09:50 被阅读59次

1.当前页面弹出支付宝付款码结账,请求接口付款成功,返回页面会提示支付成功,但是本来支付页面成功支付后面的操作不会走了,这个怎么解决?

使用根控制器的navigationController的push跳转。

UIApplication.shared.navigationController?.pushViewController(vc, animated: false)

2.生成高清二维码并添加logo:
http://www.cocoachina.com/ios/20181116/25492.html

3.小结weak和unowned:

个人总结两者的异同:

相同点:

weak和unowned都可以解决Reference Cycle,所以他们相同的地方:

都不会对object进行reference count(引用计数)加1的操作

都可以解决reference cycle这个问题(这句好像有点废)

不同点

weak修饰的属性,只能是变量(var),同时只能是Optional类型,因为在模拟实际情境中,这个属性有可能是没有具体值的。换言之你需要手动检查解包后才能使用——所以朝阳群众说这样更安全;

unowned修饰的属性,不能是Optional类型(一定是nonoptional类型),(想象一样,银行肯定要有了「客户」之后,才能制作该「客户」的「信用卡」);

weak属性,初始化后也可以为nil;

unowned属性,初始化后一定都有值;

weak比unowned更安全(原因见「不同点」第一条);

unowned比weak性能好一点点(出处——倒数第二段)

4.FPS检测界面卡顿:
理想的FPS值为60左右,过低的话就用该进性优化了,根据WWDC的说法,当FPS 低于45的时候,用户就会察觉到到滑动有卡顿。

下面用Swift封装了一个记录FPS检测的小控件:

//
//  HDLFPSLabel.swift
//  HaidilaoPad
//
//  Created by 彭思 on 2018/11/19.
//  Copyright © 2018年 HongHuoTai. All rights reserved.
//

import UIKit

class HDLFPSLabel: UILabel {
    private var _link :CADisplayLink?
    private var _count:Int = 0
    private var _lastTime:TimeInterval = 0
    private let _defaultSize = CGSize(width: 55, height: 20)
    
    override init(frame: CGRect) {
        
        var targetFrame = frame
        if frame.size.width == 0 && frame.size.height == 0{
            targetFrame.size = _defaultSize
        }
        super.init(frame: targetFrame)
        self.layer.cornerRadius = 5
        self.clipsToBounds = true
        self.textAlignment = .center
        self.isUserInteractionEnabled = false
        self.textColor = UIColor.white
        self.backgroundColor = UIColor(white: 0, alpha: 0.7)
        self.font = UIFont(name: "Menlo", size: 14)
        weak var weakSelf = self
        _link = CADisplayLink(target: weakSelf!, selector:#selector(tick(link:)));
        _link!.add(to: RunLoop.main, forMode:RunLoopMode.commonModes)
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
    
    @objc func tick(link:CADisplayLink) {
        
        if _lastTime == 0 {
            _lastTime = link.timestamp
            return
        }
        _count += 1
        let delta = link.timestamp - _lastTime
        if delta < 1 {
            return
        }
        
        _lastTime = link.timestamp
        let fps = Double(_count) / delta
        _count = 0
        let progress = fps / 60.0;
        self.textColor = UIColor(hue: CGFloat(0.27 * ( progress - 0.2 )) , saturation: 1, brightness: 0.9, alpha: 1)
        self.text = "\(Int(fps+0.5))FPS"
    }
}

PS:在我的测试机上没有感觉卡顿,但是门店有人反映卡顿,大神们有没有什么好的解决办法呢?

相关文章

  • 读书笔记149--《天命不足畏》-王安石变法的细节

    打卡149(十一月第四周) 读书笔记149--《天命不足畏》-王安石变法的细节 ...

  • 十一月第四周

    1.当前页面弹出支付宝付款码结账,请求接口付款成功,返回页面会提示支付成功,但是本来支付页面成功支付后面的操作不会...

  • 十一月第四周

    时间就是这么快,快到你都没反应过来,十一月就要结束了。 这个月,孩子正常入园三周,我从月初就开始和牙齿“较劲”! ...

  • 2018-11-23日周检视(十一月第四周)

    2018-11-23日周检视(十一月第四周) 【本月六大目标】 1、确定年底活动实施方案; 2、易效能天使班3.0...

  • 十一月第四周周检视

    一、健康:最近事比较多,经常晚睡起的也有点晚,基本都得六点多起,健身方面还是坚持的不错,一周三到四次次跑步,每晚泡...

  • 十一月第四周练字

  • 十一月份第四周教学工作总结

    十一月份第四周教学工作总结 这一周,本来应该把第七单元讲完的,但是因为周一研学旅行耽误了一天,加上...

  • 梦想是自己种出来的

    公元2019/12/23(星期一)农历十一月二十八 磁性白巫师年.韵律蜥蜴月.白色净化周.第四天 脉轮:脐轮 等离...

  • 十一月第四周交流总结

    一、总结 1.由于组织者缺席,成员之间的交流因为信息不对称无法互相提出合理建议。 2.在运动方面,坚持间隔一天跑步...

  • 2018 十一月第四周检视

    2018-11-25 一、我的三个标签: 1、亲子教育不断探索者。 2、情绪管理精进者。 3、时间管理践行者。 二...

网友评论

      本文标题:十一月第四周

      本文链接:https://www.haomeiwen.com/subject/cwyeqqtx.html