zoukankan      html  css  js  c++  java
  • 【iOS

    本周还是比较轻松的,小程序开发也接近了尾声,就是一些简单的修改了。我也就有了时间来回归老本行,重写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)。纠结了半天 不知道为什么。然后只能取消掉这行代码。

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

    参考文档:博客一博客二

  • 相关阅读:
    2017级算法第二次上机-B.第k顺序统计量
    2017级算法第二次上机-B.女娲加农炮
    2017级算法第二次上机-A.ModricWang's Real QuickSort Query
    2017级算法第三次上机-G.ModricWang的导弹拦截系统
    2017级算法第三次上机-F. SkyLee炒股票
    2017级算法第三次上机-C.SkyLee组装电脑
    Objective-c快速入门
    [翻译] Android是怎样绘制视图的
    AnimationsDemo中的ZoomActivity代码分析
    getGlobalVisibleRect和getLocalVisibleRect
  • 原文地址:https://www.cnblogs.com/weicyNo-1/p/10291829.html
Copyright © 2011-2022 走看看