一个Demo展示Storyboard的强大

移动开发 iOS
今天我通过完成一个长按cell删除的Demo,向你们展示熟练运用storyboard和Autolayout能给你的开发速度和效率带来多大的提升。

今天我通过完成一个长按cell删除的Demo,向你们展示熟练运用storyboard和Autolayout能给你的开发速度和效率带来多大的提升。

[[130767]]

删除动画

废话不多说,新建一个Single View Application.

到storyboard选中我们唯一一个的viewcontroller,找到xcode的菜单栏,Edit->Embed In->NavigationController.这时候storyboard会自动为你生成一个navigationController,并且讲viewcontroller当做rootViewcontroller.

2.jpg

点击Viewcontroller里的navigationbar.右边面板找到这些属性

3.jpg

找到title

把title改成City.

4.jpg

navigationbar的title

已经显示为City.

拉一个tableview到viewcontroller上,并且约束改为这样.

5.jpg

tableview的约束

右键单击我们的tableview,把delegate和datasource设置成我们的viewcontroller.

6.jpg

右键单击tableview

7.jpg

设置代理和数据源

现在,既然设置了delegate和datasource,一些必须实现的方法就必须要在viewcontroller里写了。

#p#

这时候我们还少一个cell,选中tableview,找到右边面板。

8.jpg

添加一个cell原形

这时候我们的tableview里会出现一个空白cell,我们这时候先用系统自定义的basic款式就行了.改identifier为basicCell

9.jpg

basicCell

然后,我们要实现tableview的代理方法

10.jpg

运行.

11.jpg

运行效果

总耗时不超过2分钟.全部手写代码要花多久?

为了实现第一张图的那种cell,我们需要做这么几件事.

1.在cell里添加一个两个view,最底层的一个view专门用来显示阴影,第二个view在上面,有圆角.(为什么要有一个view专门来显示阴影不懂的自行百度).而且第一个view宽高要比第二个view小一些.

2.第二个view上要有一个imageView和两个label,这个很简单拉线搞约束就行了.

直接上图.

先把我们的cell的类型改为custom.然后把identifier改为"customCell".新建一个类,继承自UITableViewCell,起名叫CustomTableViewCell.和我们的storyboard里的cell关联起来.(这些操作相信大家都会把.)

12.jpg

先添加阴影view(shadowView).直接把一个view拖到我们的cell上.

13.jpg

再添加一个容器view(containerView),用来放我们的imageview和两个label.

14.jpg

通过这个约束你可以看到我们的容器view明显比阴影view大.

#p#

然后把我们的图片和两个label按如下位置放置.

15.jpg

这里不用care label的约束,需要注意的只有imageView,先给imageView加如下约束.

16.jpg

意思就是上下与容器viewpadding为0,左边距为0,然后右键选中imageview,拉一根线到我们的容器view.出现这个菜单

17.jpg

选中equal Width,然后去右边找到我们的这个约束,双击,内容改为.

18.jpg

这个约束的意思就是imageView的宽度适中保持为父view宽度的十分之三.

现在我们的cell的.h文件是这样的.
 

19.jpg

那个block是我用来回调的,你们这里也可以用delegate.

.m文件是这样的.

20.jpg

21.jpg

除了手势的那个方法不太好懂以外,其他的很简单,就是设置阴影的一些属性,加给cell的contentview设置一个长按手势.

长安手势方法里的意思其实就是当用户长按cell之后做一个截图,当用户右移一定程度时,做一个回调.

我们的viewcontroller里的代码是这样的.

22.jpg

23.jpg

24.jpg

ok,到这里,我们的所有代码搞定了。如果这里让你全部使用代码写,你要花多久呢?

demo的地址.

责任编辑:林师授 来源: 叶孤城的简书
相关推荐

2024-02-19 08:26:59

wxPython界面库开发

2015-08-03 11:45:37

storyboard

2021-07-29 07:55:19

Demo 工作池

2020-11-15 18:20:44

GnuCash开源会计软

2023-10-10 08:22:12

Tesseract库开源

2021-05-17 09:52:53

工具dumiVue 组件

2024-09-06 12:52:59

2023-12-16 13:22:00

JaVers控制框架

2024-05-09 08:08:32

SpringBinderJava

2021-03-06 07:00:00

awk文本分析工具Linux

2023-01-08 21:05:45

数据预警模型

2021-04-19 10:47:11

NettyDemoI

2023-04-14 08:48:57

AutoGPT工具人工智能

2022-03-03 08:02:55

数据集成平台

2021-12-31 10:40:48

JarbootJavaGitHub

2016-12-20 13:55:52

2011-07-22 16:29:53

IOS Demo CD

2023-08-29 17:43:39

人工智能Fooocus

2021-07-26 10:14:38

Go语言工具

2024-02-28 17:24:28

人工智能边缘计算动态数据
点赞
收藏

51CTO技术栈公众号