仿原生ActionSheet的 实现

本文实现的是类似于苹果原生的ActionSheet的效果。为了实现这种效果,我在这里自定义了两个视图view,分别起名为TopView与BottomView,顾名思义就是一个顶部试图与一个底部视图。顶部视图存放的是标题,摧毁性按钮(destructiveButton)以及不确定个数的按钮(otherButtons),底部视图存放的是cancelButton.这是这两个视图的作用,而且底部视图的frame容易确定,这里不多说。而顶部视图的frame是不确定的,因为它会受到otherButtons的个数的不同而不同。这里的做法是创建一个可变数组,把这些不确定的按钮加到数组里面,然后根据数组个数去创建TopView的frame大小。这里存放按钮的时候主要用到了C需要里面的va_list函数以及va_start()与va_arg()函数。函数的作用不做详解,想了解可以回顾C语言。两个视图创建完毕之后,为了实现从底部推出的效果,我在这里做了一个transform动画,动画时间2秒钟。当然了为了实现苹果原生的这种效果,方法的创建也与苹果原生的方法一样。下面请看代码:

仿原生ActionSheet的 实现_第1张图片
图片发自App
仿原生ActionSheet的 实现_第2张图片
图片发自App
仿原生ActionSheet的 实现_第3张图片
图片发自App
仿原生ActionSheet的 实现_第4张图片
图片发自App
仿原生ActionSheet的 实现_第5张图片
图片发自App
仿原生ActionSheet的 实现_第6张图片
图片发自App
仿原生ActionSheet的 实现_第7张图片
图片发自App
仿原生ActionSheet的 实现_第8张图片
图片发自App

仿原生ActionSheet的 实现_第9张图片
图片发自App


仿原生ActionSheet的 实现_第10张图片
图片发自App
仿原生ActionSheet的 实现_第11张图片
图片发自App

用法很简单,直接调用方法,请看代码:

仿原生ActionSheet的 实现_第12张图片
图片发自App


效果图如下:

仿原生ActionSheet的 实现_第13张图片
图片发自App

具体代码在github上面,欢迎下载,谢谢。

地址:https://github.com/15221532825/-ActionSheet.

你可能感兴趣的:(仿原生ActionSheet的 实现)