Code Monkey home page Code Monkey logo

cldemo's Introduction

CLDemo

主要用于记录平时开发中部分技术点,分享出来抛砖引玉供大家参考

本Demo由OCSwift混编,全部采用纯代码方式书写,部分技术点参考他人理解加工而成,技术点实现原理请参考我的博客 博客园掘金

Swift

  1. APP内切换语言
  2. APP内修改字号
  3. 夜间模式
  4. UILabel 展开/折叠
  5. 自定义日历
  6. 汉字转拼音
  7. 三级联动+模糊搜索
  8. 蜂窝布局(UICollectionView、UIScrollView两种实现)
  9. iWatch滑动动画
  10. 文件断点续传
  11. 聊天UI框架(文字、图片、语音)
  12. 灰度图算法
  13. UITableView 同时播放多个视频
  14. UITableView 同时播放多个Gif
  15. 抽屉效果(转场)
  16. 自定义转场动画(气泡、圆形扩散、碎片翻转)
  17. 动画按钮
  18. 动画渐变色
  19. 自定义柱状图
  20. 转盘菜单
  21. 滑动渐变动画
  22. 跑马灯
  23. 评分控件
  24. 标签动态排布
  25. 自定义弹窗(UIWindow + 优先级 + 覆盖模式)
  26. 游标卡尺(UICollectionView实现)
  27. 翻转动画
  28. 广播轮播
  29. 转子动画
  30. 自定义密码框
  31. 自定义输入框-限制字数
  32. 波浪视图
  33. 气泡弹框
  34. 旋转图片
  35. 过渡动画

Objective-C

  1. APP内切换语言
  2. APP内修改字号
  3. 录音转码Mp3(边录边转)
  4. 绘制头像
  5. UICollectionView自定义布局(像素缝隙修复)
  6. 广播轮播
  7. 自定义折线图
  8. 手机号码验证
  9. 自定义转场动画
  10. 模态交互式转场
  11. UITableviewCell多个倒计时
  12. 图片浏览器
  13. 邮箱自动补全
  14. 转子动画
  15. 自定义密码框
  16. 键盘密码工具条
  17. 自定义输入工具条
  18. 卡片视图
  19. 波浪视图
  20. 气泡拖拽
  21. 自定义二维码

cldemo's People

Contributors

aizexin avatar jmovxia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cldemo's Issues

CLRecordVernierCaliperCell 滑動時候卡尺標籤數字沒有切換

版主你好,游標卡尺滑動時候數字沒有跟著更換。
我將 indexValueCallback 改寫到 setItem裡面處理。
其原因是因為self.item在還沒初始化之前他取不到值。所以原先block在guard語句之後就會返回。
後續的函數功能都不會執行。

我的理解是 -> indexValueCallback 不能寫在懶加載定義裡面。因為初始化的時候 自己的CellProtocol 協議還沒有值 self.item 會造成崩潰

所以進行了下面的修改
func setItem(_ item: CLRecordVernierCaliperItem, indexPath: IndexPath) {
self.vernierCaliperView.indexValueCallback = {[weak self] (value) in

        guard let weakSelf = self else { return }       //item -> CLRecordVernierCaliperItem
        weakSelf.item?.value = value.cgFloat
        weakSelf.item?.valueChangeCallback?(value)
        weakSelf.valueLabel.attributedText = weakSelf.attributedString(value, type: item.type)
    }

//其餘代碼
}

您參考看看

CLCellProtocol item属性 get 永远返回nil问题

item需要存储,这里永远return了nil,导致cell里面无法正常获取数据

private var xoAssociationKey: UInt8 = 0

var item: T? {
get {
return objc_getAssociatedObject(self, &xoAssociationKey) as? T
}
set(newValue) {
objc_setAssociatedObject(self, &xoAssociationKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}

项目运行不了 缺失文件

error: Build input file cannot be found: '/Users/xxx/Downloads/CKD/CKD/Other/Gategory/AutoScale+Extension.swift' (in target 'CLDemo' from project 'CLDemo')

关于App切换语言

作者是直接切换了rootViewController,来达到其他页面切换语言的, 但是这样有个问题,假如用户在其他页面有了操作,切换了rootViewController之后,其他页面的操作和状态都没了,感觉不优雅,支付宝这块比微信好很多,支付宝切换多语言之后,其他页面的操作状态都不会有任何变化

搜索页面

并没有像微信通讯录,当前字母可以显示背景颜色

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.