美文网首页
Swift 小知识点记录

Swift 小知识点记录

作者: 黑羽肃霜 | 来源:发表于2018-09-10 15:40 被阅读19次

字符串截取

let subString = (infoString as NSString).substring(with: NSRange(location: infoString.count-3, length: 3))
infoString = (infoString as NSString).substring(to: infoString.count-3)

Swift 中设置指定的圆角

//MARK: 添加圆角
// 因为涉及到layoutIfNeeded,所以使用的时候,必须在父视图 addsubview 添加了 sourceView 之后再做这个操作
/// 添加圆角,cornerPosition可以穿一个数组的组合来指定圆角 [UIRectCorner.bottomLeft, UIRectCorner.topRight],
func viewClipRoundCorner(from sourceView: UIView, cornerPosition: UIRectCorner, corner: CGFloat) {
    sourceView.layoutIfNeeded()
    let maskPath = UIBezierPath.init(roundedRect: sourceView.bounds,
                                     byRoundingCorners: cornerPosition,
                                     cornerRadii: CGSize(width: corner, height: corner))
    
    let maskLayer = CAShapeLayer()
    maskLayer.frame = sourceView.bounds
    maskLayer.path = maskPath.cgPath
    sourceView.layer.mask = maskLayer
}

富文本赋值

OC类似,富文本要传入一个字典,这里举的例子是往一个 Button 中设置他的title 为富文本

let attributes: [NSAttributedStringKey : Any] = [NSAttributedStringKey.font : UIFont.init(name: "PingFangSC-Regular", size: 13)!,
                                                         NSAttributedStringKey.foregroundColor : UIColor.init(hexString: "#999999")!]
let loginBtnTitle = NSAttributedString(string: myLocal("drawer_loginOrRegister_button"), attributes: attributes)

数组截取

recentGameInfoArray: [FullGameInfo]
tempArray = Array<FullGameInfo>(recentGameInfoArray[0...3])

计算 String 所占的宽度

//MARK: 计算字符锁占的宽度
func calculateStringWidth(srcString: String?, fontSize: CGFloat) -> CGFloat {
    guard let _ = srcString else { return 0 }
    
    let size:CGSize = CGSize.init(width: CGFloat(MAXFLOAT) , height: CGFloat(MAXFLOAT))
    let rec:CGRect = srcString!.boundingRect(with: size, options: NSStringDrawingOptions.usesFontLeading, attributes: [kCTFontAttributeName as NSAttributedStringKey : UIFont.systemFont(ofSize: fontSize)], context:nil);
    return rec.width
}

使用 present viewcontroller的问题

解决办法其实就是把present加到主线程中去

DispatchQueue.main.async {
  UIApplication.shared.keyWindow?.rootViewController?.present(alertSheet, animated: true, completion: nil)
}

闭包需要使用 weak self 的情况

为什么? 只要是稍微了解一点循环引用的人都知道,发生这种情况的主要原因是self持有了closure,而closure有持有了self,所以就造成了循环引用,从而小明对象没有被释放。

UITextField 切换可见性问题

效果.png

在UITextField输入密码后点击可见会发现光标往后移了一位即输入的内容多出一个空格.

textField.text = ""
textField.isSecureTextEntry = !passwordVisible

textField.text = tempText //切换可见性后,将原来的值赋回去

相关文章

  • Swift 小知识点记录

    字符串截取 Swift 中设置指定的圆角 富文本赋值 和OC类似,富文本要传入一个字典,这里举的例子是往一个 Bu...

  • swift学习笔记(二)

    继续记录swift知识点: 1)枚举 枚举语法: ** 和 C 和 Objective-C 不同,Swift 的枚...

  • Swift-一些小的知识点

    随意记录一些在学习iOS编程或者swift的时候碰到的一些小知识点,记录下来以备不时之需。 这部分主要是学习高仿小...

  • swift 知识点记录

    Swift 中文文档:https://swift.bootcss.com[https://swift.bootcs...

  • Swift5.0基础

    温馨提示:本文记录的知识点兼容Swift5.0 在 Swift 语言当中,一行代码就是一个完整的程序。不用编写ma...

  • Swift3.0图文混排进阶(一)数据准备

    基于Swift写一个小轮子,使用微博的表情素材,简单友好的生成属性文本写下此篇,记录其中的知识点 一、从磁盘加载表...

  • Swift基础(下)

    该系列主要是记录Swift中与OC差异较大,较容易忘记的知识点。该篇主要是关于类层面的知识点。(比如类,属性,协议...

  • 一些关键字与概念

    这个笔记本,主要用于记录每天新掌握的 iOS 以及 Swift 知识点,温故而知新,也是培养自己的书写习惯。 记录...

  • Swift基础(上)

    该系列主要是记录Swift中与OC差异较大,较容易忘记的知识点。该篇主要是关于基础数据层面的知识点(比如数组,字典...

  • Swift小知识点

    逆序遍历数组 把字符或者字符串转成整型

网友评论

      本文标题:Swift 小知识点记录

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