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

本周还是比较轻松的,小程序开发也接近了尾声,就是一些简单的修改了。我也就有了时间来回归老本行,重写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)。

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

参考文档:博客一博客二

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

时间: 2024-10-25 20:25:36

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

【iOS - 周总结】开发中遇到的小知识点(2018.12.17-2018.12.22)

本周知识点遇到的少. 部分知识点是关于图表的,已在前几篇文章中显示. 1.键值监听要注意关闭 在一个播放视频的页面返回后,在6s上运行没问题,可是在5s上运行会崩溃.我查看日志发现是kvo的问题.发现我在页面消失后没有去除观察者.从而出现崩溃. // 在viewdidload中 // 监听播放 [self.avPlayer addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context

【iOS - 周总结】开发中遇到的小知识点(2018.12.10-2018.12.15)

1.WKWebview加载html文本图片过大,没有自适应屏幕宽高. 在用Webview加载html文本有时候会遇到加载的图片过大,不能自适应屏幕宽高的问题.那么如何解决这个问题?如何使图片自适应屏幕?很简单,只需要加一个js就可以. 直接上代码: - (WKWebView *)detailWeb { if (!_detailWeb) { NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttrib

(iOS)开发中收集的小方法

1.颜色转变成图片 - (UIImage *)createImageWithColor:(UIColor *)color {     CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);     UIGraphicsBeginImageContext(rect.size);     CGContextRef context = UIGraphicsGetCurrentContext();     CGContextSetFillColorWithCo

Android开发中遇到的小问题 一

1)想要ListView活着Girdview左右留些空隙,但Scrollbar要在屏幕最右边 在xml中加入 android:paddingLeft="8dp" android:paddingRight="8dp" android:scrollbarStyle="outsideOverlay" 2)用XML实现一个圆角矩形的drawable <?xml version="1.0" encoding="utf-8

Android开发中15条小经验

Android开发中15条小经验 1. TextView中的getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的. 所以如果直接用返回的值来设置会出错,解决办法是用setTextSize()的另外一种形式,可以指定单位: setTextSize(intunit,intsize) TypedValue.COMPLEX_UNIT_PX:Pixels TypedValue.COMPLEX_UNIT_SP:ScaledPixels TypedValue.CO

iOS开发中的那些小技巧

一,前言 看到这个图,你会想起谁?是不是想起了,曾经的用户名输入框,密码输入框... 那么,问题来了:作为iOS开发的你,这个输入框你是怎么实现的,成为关键. 二,方案 方案1:弄一个UIView,在这个视图上分别放三个控件:UIImageView,UILabel与UITextField.(这个方案很直接,如果你只是简单的直接将三个控件放到视图上,那么你的月薪暴露了,最多3K.如果你是对这个视图重写了,将那三个控件封装起来了,放在.h文件,那你的月薪应该是3.5K,如果是将那三个控件放到.m文件

初学MySQL中的一些小知识点

写在前面,小弟初用博客记录学习路上的一点点小知识点,其中可能有个人理解方面的误差,或不明白的地方.希望各位大牛纠正指导,小弟感激不尽!这并不是什么帮助别人解决问题的文章,只是小弟将学习到的内容一一写在博客上,这样方便以后复习,还恳请大家勿喷.. 一.进入MySQL客户端 1.客户端可以通过.../MySQL/bin目录下的sql.exe运行客户端. 1.1:访问方式一: -u root -p /*可以直接在这段代码的后面添加密码,也可以按回车后再输入密码*/ 1.1:访问方式二: --host

JAVA开发中遇到的小白点

这里主要是自己个人开发中遇到的一些小问题,自己攒起来,来弥补自己薄弱的JAVA基础,大神不要见笑 1. DateFormat格式化的HH和hh区别: public static boolean compare_date(String DATE1, String DATE2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date dt1 = df.parse(DATE1); Date dt2 =

easyui中的combobox小知识点~~

一直使用的easyui中,一些不为人知的小知识点,与君共勉: 1.combobox设置高度:使用panelHeight属性: 2.combobox本身自带“自动补全”功能,但是在浏览器中是有限制的,在火狐当中,它的自动补全功能却不是立马实现的,而是需要敲回车或者其他什么的,但是在其他浏览器,比如360或者谷歌当中,这种自动补全功能却是“立竿见影”的,而且,它也是提供手动输入值的,只不过,手动输入的值,貌似用类似于:var  cities= jQuery('#cities').combobox('