• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift编码总结3 - 玉思盈蝶

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Swift编码总结3

1.编码转换:

dataString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
requestData.stringValue.removingPercentEncoding ?? ""

2.取值需要判断为空设置为空,防止取值崩溃:

                //总页数
                let totalPageCount = dicData?["recordNum"] as? String
                //菜品数据源
                var dataSource = dicData?["orderInfo"] as? [Dictionary<String,Any>] ?? [Dictionary<String,Any>]()

3.可以在UIView里添加刷新,block传递到控制器操作网络请求即可:

        //上拉加载
        historyTableView.mj_footer = MJRefreshAutoNormalFooter(refreshingBlock : {[weak self]() -> Void in
            self?.refreshBack?()
        })

4.setNeedsLayout和layoutIfNeeded区别:

不能直接调用这个方法layoutSubviews。强制刷新布局,调用 setNeedsLayout,如果想马上刷新界面,调用layoutIfNeeded

setNeedsLayout

标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用

配合layoutIfNeeded立即更新

layoutIfNeeded

如果,有需要刷新的标记,立即调用layoutSubviews进行布局

一般写在UIView动画里。

https://yiweifen.com/html/news/WaiYu/74770.html

http://ios.jobbole.com/84219/

5.for循环推荐使用:

 for (index,item) in potTaste.details.enumerated() {  }

 data.forEach { (label, model) in {  }

6.枚举不同的type,设置不同的属性:

enum ButtonName {
    case Split(String,UIColor,UIColor)                  //拆分
    case Doubly(String,UIColor,UIColor)                 //倍增
    case Delay(String,UIColor,UIColor)                  //延迟
    case SureOrder(String,UIColor,UIColor)              //确认下单
    case Rush(String,UIColor,UIColor)                   //催菜
    case Confirm(String,UIColor,UIColor)                //确认上菜
    case Gift(String,UIColor,UIColor)                   //赠菜
    case GiveBack(String,UIColor,UIColor)               //退菜
    case ChangeTableDish                                //单品转台
}

7.Cell中接受多个model可以使用元组:

typealias ModelTuple = (dishLabel: DishLabel, dishViewModel: DishViewModel)
var model: ModelTuple!

8.CollectionView 大量 Item 快速滑动时掉帧严重问题的优化:

if #available(iOS 10.0, tvOS 10.0, *) {
            collectionView?.prefetchDataSource = self
        }

9.convert。。。to。。。:

            // 将collectionView在控制器view的中心点转化成collectionView上的坐标
            var topPoint = CGPoint(x: UIScreen.main.bounds.size.width*0.5, y: NavigationBarH)
            var pInView = view.convert(topPoint, to: collectionView)

10.MJRefresh根据拖拽比例自动切换透明度:

let header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: #selector(loadNew))
// 设置自动切换透明度(在导航栏下面自动隐藏)
header?.isAutomaticallyChangeAlpha = true;

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift code发布时间:2022-07-13
下一篇:
Swift编码总结8 - 玉思盈蝶发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap