iOS实用开发技巧-Swift

网页版点击不能正常跳转, 导致很不方便, 下方留言, 发MarkDown 格式文本!
  • UITableView的Group样式下顶部空白处理
  • UITableView的plain样式下,取消区头停滞效果
  • 获取某个view所在的控制器
  • 两种方法删除NSUserDefaults所有记录
  • 打印系统所有已注册的字体名称
  • 禁止锁屏
  • 模态推出透明界面
  • 字符串按多个符号分割
  • iOS跳转到App Store下载应用评分
  • iOS 获取汉字的拼音
  • 手动更改iOS状态栏的颜色
  • 判断当前ViewController是push还是present的方式显示的
  • 获取实际使用的LaunchImage图片
  • iOS在当前屏幕获取第一响应
  • 判断对象是否遵循了某协议
  • 判断view是不是指定视图的子视图
  • NSArray 快速求总和 最大值 最小值 和 平均值
  • 修改UITextField中Placeholder的文字颜色
  • 关于NSDateFormatter的格式
  • 获取一个类的所有子类
  • 监测IOS设备是否设置了代理,需要CFNetwork.framework
  • 阿拉伯数字转中文格式
  • Base64编码与NSString对象或NSData对象的转换
  • 取消UICollectionView的隐式动画
  • 让Xcode的控制台支持LLDB类型的打印
  • CocoaPods pod install/pod update更新慢的问题
  • UIImage 占用内存大小
  • GCD timer定时器
  • 图片上绘制文字 写一个UIImage的category
  • 查找一个视图的所有子视图
  • 计算文件大小
  • UIView设置部分圆角
  • 取上整与取下整
  • 计算字符串字符长度,一个汉字算两个字符
  • 给UIView设置图片
  • 防止scrollView手势覆盖侧滑手势
  • 去掉导航栏返回的back标题
  • 字符串中是否含有中文
  • dispatch_group的使用
  • UITextField每四位加一个空格,实现代理
  • 获取私有属性和成员变量 #import
  • 获取手机安装的应用
  • 判断两个日期是否在同一周 写在NSDate的category里面
  • 应用内打开系统设置界面
  • 屏蔽触发事件,2秒后取消屏蔽
  • 动画暂停再开始
  • fillRule原理
  • iOS中数字的格式化
  • 如何获取WebView所有的图片地址
  • 获取到webview的高度
  • navigationBar变为纯透明
  • tabBar同理
  • navigationBar根据滑动距离的渐变色实现
  • iOS 开发中一些相关的路径
  • navigationItem的BarButtonItem如何紧靠屏幕右边界或者左边界?
  • NSString进行URL编码和解码
  • UIWebView设置User-Agent
  • 获取硬盘总容量与可用容量:
  • 获取UIColor的RGBA值
  • 修改textField的placeholder的字体颜色、大小
  • AFN移除JSON中的NSNull
  • ceil()和floor()
  • UIWebView里面的图片自适应屏幕

UITableView的Group样式下顶部空白处理

//分组列表头部空白处理
let view: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0.1))
tableView.tableHeaderView = view

UITableView的plain样式下,取消区头停滞效果

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let sectionHeaderHeight = scrollView.bounds.height
    if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y > 0) {
        scrollView.contentInset = UIEdgeInsets(top: -scrollView.contentOffset.y, left: 0, bottom: 0, right: 0)
    } else if (scrollView.contentOffset.y >= sectionHeaderHeight) {
        scrollView.contentInset = UIEdgeInsets(top: -sectionHeaderHeight, left: 0, bottom: 0, right: 0)
    }
}

获取某个view所在的控制器


func viewController() -> UIViewController {
    
    var viewController = UIViewController()
    var next: UIResponder? = self.next
    while next != nil {
        if (next?.isKind(of: NSClassFromString("UIViewController")!))! {
            viewController = next as! UIViewController
            break
        }
        next = next?.next
    }
    return viewController
}

两种方法删除NSUserDefaults所有记录

//方法一
if let appDomain = Bundle.main.bundleIdentifier {
    UserDefaults.standard.removePersistentDomain(forName: appDomain)
}

//方法二
func resetDefaults() {
    let defs = UserDefaults.standard
    let dict = defs.dictionaryRepresentation()
    for key in dict {
        defs.removeObject(forKey: key.key)
    }
    defs.synchronize()
}

打印系统所有已注册的字体名称

// 打印系统所有已注册的字体名称
func enumerateFonts() {
    for familyName in UIFont.familyNames {
        print(familyName)
        let fontNames = UIFont.fontNames(forFamilyName: familyName)
        for fontName in fontNames {
            print("\t| - \(fontName)")
        }
    }
}

禁止锁屏

UIApplication.shared.isIdleTimerDisabled = true

模态推出透明界面

let vc = UIViewController()
let na = UINavigationController(rootViewController: vc)

let str = UIDevice.current.systemVersion
let numStr = Double(str)

if numStr! >= 8.0 {
    na.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
} else {
    na.modalPresentationStyle = UIModalPresentationStyle.currentContext
}
present(na, animated: true, completion: nil)

字符串按多个符号分割

let str = "abc,vfr.yuu"
let set = NSCharacterSet.init(charactersIn: ",.")
print(str.components(separatedBy: set as CharacterSet))

获取汉字的拼音

iOS实用开发技巧-Swift_第1张图片
时间问题更新到这里,但是会按照目录走,若有需要哪个? 评论里留言,随时解答

你可能感兴趣的:(iOS实用开发技巧-Swift)