码迷,mamicode.com
首页 > 其他好文 > 详细

【周总结】开发中遇到的小知识点(2019.01.14-2019.01.19)

时间:2019-01-19 16:24:28      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:控制器   lan   宏定义   三方   resign   refresh   one   解决   编译   

本周还是比较轻松的,小程序开发也接近了尾声,就是一些简单的修改了。我也就有了时间来回归老本行,重写iOS。这周我花了一些时间来把之前仿写的Swift项目完成。这个应用比较简单,但是实用点还是不少的。下面听我一一道来。

首先是搭建框架,在之前OC中我有自己的一套框架,用起来比较顺手。于是在swift中我也准备弄一套类似的框架。在最开始我失败了。在我创建父控制器的时候,我创建新的子控制器继承他发现不能自动生成viewdidload()方法。后来慢慢就好了,这应该是编译器的问题。靠苹果自己解决了。

然后是声明一些常见的宏定义,这个就比较简单了。只需要声明一个文件即可,但是需要注意写法

 

接下来就是重点了。由于这个项目我打算纯swift编写,于是一些之前常用的三方库都不能使用了。我就只能在github上查找一些比较好用的Swift库。

pod Alamofire
pod Kingfisher
pod "ESTabBarController-swift"
pod GTMRefresh
pod SnapKit
pod SwiftyJSON
pod XHToastSwift
pod JXPhotoBrowser

这里面涵盖了网络请求、图片加载、下拉刷新、数据存储、页面创建、图片查看等等常见功能,基本上常见APP上的功能都可以靠它们实现。使用方法我就不在这里贴出了。可以去网上查找,也可以去我的github上下载我的项目。

在这个项目中我使用了tableview和collectionView这些常见列表,进行了数据存储、加载查看保存图片,网络请求、数据解析。在开发中也遇到了一些困难。在下面我就把这些问题和解决方法一一列出。

1.navigation添加搜索框 

navigationItem的titleView不能直接设置成searchbar。

原因如下,如果设置成searchbar设置frame之类的会变形,且不好监控。这时候我们可以先设置一个UIView,在UIView上添加searchbar,然后后UIView设置为titleView。

2.navigation添加搜索框取消第一响应

这个就是我自己的问题了。是我自己开始没考虑对方向。我在父控制器中添加了点击手势,再点击的时候取消第一响应。

self.view.endEditing(true)

可是我在这里失败了,我开始没想到为什么,于是我在viewWillDisappear()中也写了上面的代码,还是不行。

最后我终于想到了为什么。self.view不包括导航栏

override func endEditingAction() {
        self.view.endEditing(true)
        self.navSearchBar.resignFirstResponder()
        // 或者 self.navSearchBar.endEditing(true)
    }

3.设置edgesForExtendedLayout

在oc中我一般把这个设置为none来使坐标原点从(0,0)变到(0,64)。于是在父控制器中我也就写了这个,结果坐标原点从(0,64)变到了(0,128)。

下面我写几个比较好的博客,如果你这个理解不清楚的可以看一下

参考文档:博客一博客二

【周总结】开发中遇到的小知识点(2019.01.14-2019.01.19)

标签:控制器   lan   宏定义   三方   resign   refresh   one   解决   编译   

原文地址:https://www.cnblogs.com/weicyNo-1/p/10291829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!