ZCMUCZX的博客

学习的脚步

ios-transform的rotated的应用

在Swift我们可能都使用过self.iconView.transform.rotated(by: CGFloat(2*Double.pi)),这个代码,然而如果我们直接这么写,这个view是不会旋转的,因为这个旋转动画的特点就是顺时针优先的原则和就近原则,比如你正好让它转一圈,它觉得呆着不动挺好...

2017-09-30 17:30:35

阅读数:221

评论数:0

ios-图片保持等比例显示

我们如果用过QQ,微博都知道如果朋友圈刷新,显示别人发的微博或者动态显示单张图片,其实宽高比是和用户上传的照片的宽高比是一样的。这样对用户的视觉效果来说是比较好了,如果我们把显示单张图片的宽高固定死了,那可能用户体验就不会太好。如果我们想显示按照比例显示的话。我们有两种方法 一种就是把图片的二进制...

2017-09-29 11:47:42

阅读数:515

评论数:0

ios-调度组的使用补充

在日常开发中我们使用调度组的情况可能会比较少,而我们如果使用了调度组一般是使用这种形式的,因为这种形式的调度组我们容易理解也比较容易上手。如下所示 void dispatch_group_async(dispatch_group_t group, dispatch_queue_t qu...

2017-09-29 08:38:17

阅读数:159

评论数:0

ios-tableView的行高计算

如果我们设置了预估的行高也就是tableView.estimatedRowHeight = 100这样的话,当前显示的行高会被调用三次的 如果我们没有设置预估的行高,就会把多个cell的行高算三遍。然后再算进入屏幕范围的Cell的高度。 前面是从0开始的,如下图所示。当我们滚动到第四个的时候又...

2017-09-27 22:47:17

阅读数:200

评论数:0

ios-自动布局约束的问题

目前的自动布局的框架有两个框架是很好用的一个就是SnapKit 还有个就是Masonry,为什么要使用框架,因为苹果自带的框架我们使用起来代码写的太多了。所以我们可以使用第三方框架来编写。其中这里补充一点就是我们如果已经给一个控件添加过约束,我们还想去修改的话,我们只需要通过下面这个代码进行判断,...

2017-09-27 13:55:47

阅读数:101

评论数:0

ios-sizeToFit

对于sizeToFit,大家应该都用过,这里记录下关于它的一些知识。我们一般使用sizeToFit(),一般是对按钮,标签,图片使用的可能会比较多,我们是不能重写sizeToFit这个方法,但是我们可以重写sizeThatFits这个方法,因为sizeToFit就会去调用sizeThatFits这...

2017-09-27 13:26:34

阅读数:116

评论数:0

ios-动态改变高度的注意点

在开发中,如果我们的任务是要去做到根据某某东西,去动态的改变高度,一定要先去测试我们之前做的那个方法可以不可以直接支持我们去改,就比如说我们如果需要在cell中计算高度,就比如说我们是通过自动计算行高来设置cell的高度的。 //先设置预估行高 tableView.estimated...

2017-09-27 12:42:19

阅读数:134

评论数:0

ios-Swift中的闭包

关于闭包,其实有几个知识点如果理解了,可能就会比较轻松了 1、函数名其实就是指向代码区的一个指针地址 2、所以我们在运行时,调用的函数就是通过函数的地址去找到第一句代码在哪里,然后再去执行。 我们定义一个函数,函数的参数是一个闭包,然后我们给这个参数传入函数的地址是可以的。比如说这样子 func ...

2017-09-25 23:22:52

阅读数:124

评论数:0

ios-tableView自动计算行高

最近通过学习了解到一个东西就是tableView可以自动的计算行高了,只需要配合autoLayout来使用就可以了 先设置如下所示的代码 //先设置预估行高 tableView.estimatedRowHeight = 200 //再设置自动计算行高 ...

2017-09-25 19:35:34

阅读数:385

评论数:0

ios-自动布局的基本原理

使用自动布局开发,我们最好遵守下面的一些规定          所有使用约束设置位置的控件,不要再去设置frame          因为自动布局系统会根据设置的约束,自动的计算控件的frame          会在layoutSubviews函数中进行设置frame          ...

2017-09-23 14:32:29

阅读数:166

评论数:0

ios-Swift中设置全局外观

一般我们设置navigationBar和UITabBar全局外观的话可以这么设置,在appDelegate文件中进行设置,在这里有一点需要注意的是修改导航栏的全局外观,一定要在创建控件之前进行设置,不然会出问题,还有就是我们//在Swift中我们可以自己创建一个文件来代替.pch文件中一些全局变量...

2017-09-21 07:26:40

阅读数:156

评论数:0

ios-Swift中的extension

在Swift中的extension中只能写便利构造函数,不能写指定的构造函数,因为extension其实和OC中的分类是很像的,在OC中的分类的功能其实就是这个类的功能结构我已经写好了,你需要做的就是去添加一些额外的功能。不能去定义存储型的属性,因为你一旦定义了,就表示你这个类的结构被改变了。我们...

2017-09-20 19:25:58

阅读数:129

评论数:0

ios-AFN中默认返回的数据转换成二进制数据

在我们通过AFN去访问接口,获取的数据,是自动的帮我们做了反序列化,我们看不出类型是什么,这样我们在字典转模型的时候就不好去设置对应属性的类型是什么,如果我们想要知道具体数据的类型是什么,我们可以这们做,如下代码所示 //如果我们要知道返回的数据内容的类型,我们应该先转换成字...

2017-09-20 07:45:10

阅读数:754

评论数:0

ios-Swift中封装AFN中的GET和POST请求

当我们通过CocoaPods下载完AFN框架之后,我们想在工程中去应用它我们需要加一个import的头文件 import AFNetworking 我们怎么去找这个头文件就是在我们这个项目中去寻找 具体写法如下所示 import UIKit //导入头文件 import AFNetworking...

2017-09-18 17:53:00

阅读数:322

评论数:0

ios-OC封装AFN中的GET和POST方法

我们其实在写大型程序的时候最好不要直接让大型的框架直接进入项目中,因为这样耦合性会很强,你的程序就离不开AFN了,这样的情况肯定不是我们希望的,比如说AFN如果有重大的更新,我们如果用的是直接引入框架的方法,那我们需要改的东西有很多,如果我们通过封装一个工具类,来进行网络请求,这样的话,耦合性降低...

2017-09-18 12:35:00

阅读数:386

评论数:0

ios-Swift中的单例写法

因为静态去的对象只能去设置一次数值,所以我们可以用静态常量来创建一个对象,从而得到单例的效果,如下代码所示 static let tool = SoundTools()在Swift中单例的写法和懒加载很类似,几乎一模一样了,如下所示 static var instance:SoundTool...

2017-09-17 19:43:53

阅读数:762

评论数:0

ios-VFL语言

苹果味了简化autolayout的编写,而推出了一种可视化的语言就是VFL,VFL的具体使用如下所示 /**使用VFL:可视化格式语言 H 水平方向 V 垂直方向 | 边界 []包装控件 ...

2017-09-17 10:34:47

阅读数:119

评论数:0

ios-MVC VS MVVM

我们都知道以前的代码架构基本都是MVC的模式,让模型,视图,控制器这三个东西分别做自己的事情,但是这样会有缺点,可能一不小心你控制器里面所处理的逻辑代码太多,变成几万行,那我们就会难以进行维护。总的来说就是MVC模式存在下面几个问题,模型的代码比较少,控制器代码多了不好去测试。 MVC模式的话其实...

2017-09-16 16:12:28

阅读数:115

评论数:0

ios-Swift中解除循环引用的三种方式

1、加一个标记,表示里面用到的self都是弱引用 test4 {[weak self] (name)->() in //self?表示如果对象一旦被释放了,就不再访问其属性或者方法 print(self?.view...

2017-09-15 20:44:46

阅读数:204

评论数:0

ios-Swift处理异常的三种方式

1、我们手动的去捕捉异常 let jsonStr="lll" let jsonData=jsonStr.data(using: String.Encoding.utf8) //在Swift中op...

2017-09-15 20:14:30

阅读数:216

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭