type
status
date
slug
summary
tags
category
icon
password
本人在开发中比较喜欢用 xib 来作布局,通常情况下,我们需要把一些常用的 view 封装成组件来供大伙儿使用。但是这个组件一般只是负责 view 层的展示任务,事件相关的业务逻辑需要转发到相应的 controller 里面去。这里介绍一下本人使用的一种方法。
直接上代码
BaseView 基类
BaseView
MyView 组件
首先建一个 BaseView 的子类,和对应的 xib 文件
MyView.h
在 MyView.xib 中,把 file’s owner 设置为 MyView,同时把 view 的 custom class 设置为 MyView。
接下来就是做关联了: - 关联属性的时候需要把 xib 中的 button 与
view
的 loginButton 关联 - 关联事件的时候需要把 xib 中的 button 的事件与 File's Owner
的 loginAction 关联这样就做好了一个 MyView 组件了
使用 MyView
在 MyViewController 中我们要加入这个 MyView,可以通过如下方式
首先,让 MyViewController 实现 MyViewActionProtocol 协议
然后在 viewDidLoad 的时候如下方式加入 MyView
这样,view 中的事件处理就可以直接放到 MyViewController 里面去了,但是 view 的渲染我们照样可以在 MyView 中进行。 比如,我要设置 loginButton 的样式,可以在 MyView 里面写如下代码
而且在 MyViewController 中照样可以引用到 MyView 里面的属性